2 <!ENTITY % scons SYSTEM "../scons.mod">
4 <!ENTITY % builders-mod SYSTEM "builders.mod">
6 <!ENTITY % functions-mod SYSTEM "functions.mod">
8 <!ENTITY % tools-mod SYSTEM "tools.mod">
10 <!ENTITY % variables-mod SYSTEM "variables.mod">
14 <variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
15 <varlistentry id="t-386asm">
18 Sets construction variables for the 386ASM assembler
19 for the Phar Lap ETS embedded operating system.
21 <para>Sets: &cv-link-AS;, &cv-link-ASCOM;, &cv-link-ASFLAGS;, &cv-link-ASPPCOM;, &cv-link-ASPPFLAGS;.</para><para>Uses: &cv-link-CC;, &cv-link-CPPFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_CPPINCFLAGS;.</para></listitem>
23 <varlistentry id="t-aixcXX">
26 Sets construction variables for the IMB xlc / Visual Age C++ compiler.
28 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
30 <varlistentry id="t-aixcc">
33 Sets construction variables for the IBM xlc / Visual Age C compiler.
35 <para>Sets: &cv-link-CC;, &cv-link-CCVERSION;, &cv-link-SHCC;.</para></listitem>
37 <varlistentry id="t-aixf77">
40 Sets construction variables for the IBM Visual Age f77 Fortran compiler.
42 <para>Sets: &cv-link-F77;, &cv-link-SHF77;.</para></listitem>
44 <varlistentry id="t-aixlink">
47 Sets construction variables for the IBM Visual Age linker.
49 <para>Sets: &cv-link-LINKFLAGS;, &cv-link-SHLIBSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
51 <varlistentry id="t-applelink">
52 <term>applelink</term>
54 Sets construction variables for the Apple linker
55 (similar to the GNU linker).
57 <para>Sets: &cv-link-APPLELINK_COMPATIBILITY_VERSION;, &cv-link-APPLELINK_CURRENT_VERSION;, &cv-link-APPLELINK_NO_COMPATIBILITY_VERSION;, &cv-link-APPLELINK_NO_CURRENT_VERSION;, &cv-link-FRAMEWORKPATHPREFIX;, &cv-link-LDMODULECOM;, &cv-link-LDMODULEFLAGS;, &cv-link-LDMODULEPREFIX;, &cv-link-LDMODULESUFFIX;, &cv-link-LINKCOM;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-_APPLELINK_COMPATIBILITY_VERSION;, &cv-link-_APPLELINK_CURRENT_VERSION;, &cv-link-_FRAMEWORKPATH;, &cv-link-_FRAMEWORKS;.</para><para>Uses: &cv-link-FRAMEWORKSFLAGS;.</para></listitem>
59 <varlistentry id="t-ar">
62 Sets construction variables for the &ar; library archiver.
64 <para>Sets: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;, &cv-link-RANLIB;, &cv-link-RANLIBCOM;, &cv-link-RANLIBFLAGS;.</para></listitem>
66 <varlistentry id="t-as">
69 Sets construction variables for the &as; assembler.
71 <para>Sets: &cv-link-AS;, &cv-link-ASCOM;, &cv-link-ASFLAGS;, &cv-link-ASPPCOM;, &cv-link-ASPPFLAGS;.</para><para>Uses: &cv-link-CC;, &cv-link-CPPFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_CPPINCFLAGS;.</para></listitem>
73 <varlistentry id="t-bcc32">
76 Sets construction variables for the bcc32 compiler.
78 <para>Sets: &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CCFLAGS;, &cv-link-CFILESUFFIX;, &cv-link-CFLAGS;, &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;, &cv-link-SHCC;, &cv-link-SHCCCOM;, &cv-link-SHCCFLAGS;, &cv-link-SHCFLAGS;, &cv-link-SHOBJSUFFIX;.</para><para>Uses: &cv-link-_CPPDEFFLAGS;, &cv-link-_CPPINCFLAGS;.</para></listitem>
80 <varlistentry id="t-cc">
83 Sets construction variables for generic POSIX C compilers.
85 <para>Sets: &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CCDEPFLAGS;, &cv-link-CCFLAGS;, &cv-link-CFILESUFFIX;, &cv-link-CFLAGS;, &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-FRAMEWORKPATH;, &cv-link-FRAMEWORKS;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;, &cv-link-SHCC;, &cv-link-SHCCCOM;, &cv-link-SHCCFLAGS;, &cv-link-SHCFLAGS;, &cv-link-SHOBJSUFFIX;.</para><para>Uses: &cv-link-CCCOMSTR;, &cv-link-PLATFORM;, &cv-link-SHCCCOMSTR;.</para></listitem>
87 <varlistentry id="t-clang">
90 Set construction variables for the Clang C compiler.
92 <para>Sets: &cv-link-CC;, &cv-link-CCDEPFLAGS;, &cv-link-CCVERSION;, &cv-link-SHCCFLAGS;.</para></listitem>
94 <varlistentry id="t-clangxx">
97 Set construction variables for the Clang C++ compiler.
99 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJSUFFIX;, &cv-link-STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME;.</para></listitem>
101 <varlistentry id="t-compilation_db">
102 <term>compilation_db</term>
104 Sets up &b-link-CompilationDatabase; builder which generates a clang tooling compatible compilation database.
106 <para>Sets: &cv-link-COMPILATIONDB_COMSTR;, &cv-link-COMPILATIONDB_PATH_FILTER;, &cv-link-COMPILATIONDB_USE_ABSPATH;.</para></listitem>
108 <varlistentry id="t-cvf">
111 Sets construction variables for the Compaq Visual Fortran compiler.
113 <para>Sets: &cv-link-FORTRAN;, &cv-link-FORTRANCOM;, &cv-link-FORTRANMODDIR;, &cv-link-FORTRANMODDIRPREFIX;, &cv-link-FORTRANMODDIRSUFFIX;, &cv-link-FORTRANPPCOM;, &cv-link-OBJSUFFIX;, &cv-link-SHFORTRANCOM;, &cv-link-SHFORTRANPPCOM;.</para><para>Uses: &cv-link-CPPFLAGS;, &cv-link-FORTRANFLAGS;, &cv-link-SHFORTRANFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_FORTRANINCFLAGS;, &cv-link-_FORTRANMODFLAG;.</para></listitem>
115 <varlistentry id="t-cXX">
118 Sets construction variables for generic POSIX C++ compilers.
120 <para>Sets: &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-CXX;, &cv-link-CXXCOM;, &cv-link-CXXFILESUFFIX;, &cv-link-CXXFLAGS;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;, &cv-link-OBJSUFFIX;, &cv-link-SHCXX;, &cv-link-SHCXXCOM;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJSUFFIX;.</para><para>Uses: &cv-link-CXXCOMSTR;, &cv-link-SHCXXCOMSTR;.</para></listitem>
122 <varlistentry id="t-cyglink">
125 Set construction variables for cygwin linker/loader.
127 <para>Sets: &cv-link-IMPLIBPREFIX;, &cv-link-IMPLIBSUFFIX;, &cv-link-LDMODULEVERSIONFLAGS;, &cv-link-LINKFLAGS;, &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLIBPREFIX;, &cv-link-SHLIBSUFFIX;, &cv-link-SHLIBVERSIONFLAGS;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-_LDMODULEVERSIONFLAGS;, &cv-link-_SHLIBVERSIONFLAGS;.</para></listitem>
129 <varlistentry id="t-default">
132 Sets &consvars; for a default list of Tool modules.
133 Use <emphasis role="bold">default</emphasis>
134 in the tools list to retain the original defaults,
135 since the <parameter>tools</parameter> parameter
136 is treated as a literal statement of the tools
137 to be made available in that &consenv;, not an addition.
141 The list of tools selected by default is not static,
142 but is dependent both on
143 the platform and on the software installed on the platform.
144 Some tools will not initialize if an underlying command is
145 not found, and some tools are selected from a list of choices
146 on a first-found basis. The finished tool list can be
147 examined by inspecting the &cv-link-TOOLS; &consvar;
152 On all platforms, the tools from the following list
153 are selected if their respective conditions are met:
154 <!--TODO: &t-link-filesystem; --> filesystem;,
155 <!--TODO &t-link-wix; --> wix,
156 &t-link-lex;, &t-link-yacc;,
157 &t-link-rpcgen;, &t-link-swig;,
158 &t-link-jar;, &t-link-javac;, &t-link-javah;, &t-link-rmic;,
159 &t-link-dvipdf;, &t-link-dvips;, &t-link-gs;,
160 &t-link-tex;, &t-link-latex;, &t-link-pdflatex;, &t-link-pdftex;,
161 &t-link-tar;, &t-link-zip;, &t-link-textfile;.
165 On Linux systems, the default tools list selects
166 (first-found): a C compiler from
167 &t-link-gcc;, &t-link-intelc;, &t-link-icc;, &t-link-cc;;
169 &t-link-gXX;, &t-link-intelc;, &t-link-icc;, &t-link-cXX;;
171 &t-link-gas;, &t-link-nasm;, &t-link-masm;;
173 &t-link-gnulink;, &t-link-ilink;;
174 a Fortran compiler from
175 &t-link-gfortran;, &t-link-g77;, &t-link-ifort;, &t-link-ifl;,
176 &t-link-f95;, &t-link-f90;, &t-link-f77;;
177 and a static archiver &t-link-ar;.
178 It also selects all found from the list
180 <!-- TODO &t-link-rpm; --> rpm.
184 On Windows systems, the default tools list selects
185 (first-found): a C compiler from
186 &t-link-msvc;, &t-link-mingw;, &t-link-gcc;, &t-link-intelc;,
187 &t-link-icl;, &t-link-icc;, &t-link-cc;, &t-link-bcc32;;
189 &t-link-msvc;, &t-link-intelc;, &t-link-icc;, &t-link-gXX;,
190 &t-link-cXX;, &t-link-bcc32;;
192 &t-link-masm;, &t-link-nasm;, &t-link-gas;, &t-link-386asm;;
194 &t-link-mslink;, &t-link-gnulink;, &t-link-ilink;,
195 &t-link-linkloc;, &t-link-ilink32;;
196 a Fortran compiler from
197 &t-link-gfortran;, &t-link-g77;, &t-link-ifl;, &t-link-cvf;,
198 &t-link-f95;, &t-link-f90;, &t-link-fortran;;
199 and a static archiver from
200 &t-link-mslib;, &t-link-ar;, &t-link-tlib;;
201 It also selects all found from the list
202 &t-link-msvs;, &t-link-midl;.
206 On MacOS systems, the default tools list selects
207 (first-found): a C compiler from
208 &t-link-gcc;, &t-link-cc;;
210 &t-link-gXX;, &t-link-cXX;;
211 an assembler &t-link-as;;
213 &t-link-applelink;, &t-link-gnulink;;
214 a Fortran compiler from
215 &t-link-gfortran;, &t-link-f95;, &t-link-f90;, &t-link-g77;;
216 and a static archiver &t-link-ar;.
217 It also selects all found from the list
219 <!-- TODO &t-link-rpm; --> rpm.
223 Default lists for other platforms can be found by
224 examining the &scons;
226 <filename>SCons/Tool/__init__.py</filename>).
231 <varlistentry id="t-dmd">
234 Sets construction variables for D language compiler DMD.
236 <para>Sets: &cv-link-DC;, &cv-link-DCOM;, &cv-link-DDEBUG;, &cv-link-DDEBUGPREFIX;, &cv-link-DDEBUGSUFFIX;, &cv-link-DFILESUFFIX;, &cv-link-DFLAGPREFIX;, &cv-link-DFLAGS;, &cv-link-DFLAGSUFFIX;, &cv-link-DINCPREFIX;, &cv-link-DINCSUFFIX;, &cv-link-DLIB;, &cv-link-DLIBCOM;, &cv-link-DLIBDIRPREFIX;, &cv-link-DLIBDIRSUFFIX;, &cv-link-DLIBFLAGPREFIX;, &cv-link-DLIBFLAGSUFFIX;, &cv-link-DLIBLINKPREFIX;, &cv-link-DLIBLINKSUFFIX;, &cv-link-DLINK;, &cv-link-DLINKCOM;, &cv-link-DLINKFLAGPREFIX;, &cv-link-DLINKFLAGS;, &cv-link-DLINKFLAGSUFFIX;, &cv-link-DPATH;, &cv-link-DRPATHPREFIX;, &cv-link-DRPATHSUFFIX;, &cv-link-DVERPREFIX;, &cv-link-DVERSIONS;, &cv-link-DVERSUFFIX;, &cv-link-SHDC;, &cv-link-SHDCOM;, &cv-link-SHDLIBVERSIONFLAGS;, &cv-link-SHDLINK;, &cv-link-SHDLINKCOM;, &cv-link-SHDLINKFLAGS;.</para></listitem>
238 <varlistentry id="t-docbook">
240 <listitem><para>This tool tries to make working with Docbook in &SCons; a little easier.
241 It provides several toolchains for creating different output formats,
242 like HTML or PDF. Contained in the package is
243 a distribution of the Docbook XSL stylesheets as of version 1.76.1.
244 As long as you don't specify your own stylesheets for customization,
245 these official versions are picked as default...which should reduce
246 the inevitable setup hassles for you.
248 <para>Implicit dependencies to images and XIncludes are detected automatically
249 if you meet the HTML requirements. The additional
250 stylesheet <filename>utils/xmldepend.xsl</filename> by Paul DuBois is used for this purpose.
252 <para>Note, that there is no support for XML catalog resolving offered! This tool calls
253 the XSLT processors and PDF renderers with the stylesheets you specified, that's it.
254 The rest lies in your hands and you still have to know what you're doing when
255 resolving names via a catalog.
257 <para>For activating the tool "docbook", you have to add its name to the Environment constructor,
260 <screen>env = Environment(tools=['docbook'])
262 <para>On its startup, the &t-docbook; tool tries to find a required <literal>xsltproc</literal> processor, and
263 a PDF renderer, e.g. <application>fop</application>. So make sure that these are added to your system's environment
264 <envar>PATH</envar> and can be called directly without specifying their full path.
266 <para>For the most basic processing of Docbook to HTML, you need to have installed
268 <itemizedlist><listitem><para>the Python <systemitem>lxml</systemitem>
269 binding to <systemitem>libxml2</systemitem>, or</para>
271 <listitem><para>a standalone XSLT processor, currently detected are <application>xsltproc</application>, <application>saxon</application>, <application>saxon-xslt</application>
272 and <application>xalan</application>.
276 <para>Rendering to PDF requires you to have one of the applications
277 <application>fop</application> or <application>xep</application> installed.
280 <para>Creating a HTML or PDF document is very simple and straightforward. Say
282 <screen>env = Environment(tools=['docbook'])
283 env.DocbookHtml('manual.html', 'manual.xml')
284 env.DocbookPdf('manual.pdf', 'manual.xml')
286 <para>to get both outputs from your XML source <filename>manual.xml</filename>. As a shortcut, you can
287 give the stem of the filenames alone, like this:
289 <screen>env = Environment(tools=['docbook'])
290 env.DocbookHtml('manual')
291 env.DocbookPdf('manual')
293 <para>and get the same result. Target and source lists are also supported:
295 <screen>env = Environment(tools=['docbook'])
296 env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml'])
300 <screen>env = Environment(tools=['docbook'])
301 env.DocbookHtml(['manual','reference'])
303 <important><para>Whenever you leave out the list of sources, you may not specify a file extension! The
304 Tool uses the given names as file stems, and adds the suffixes for target and source files
308 <para>The rules given above are valid for the Builders &b-link-DocbookHtml;,
309 &b-link-DocbookPdf;, &b-link-DocbookEpub;, &b-link-DocbookSlidesPdf; and &b-link-DocbookXInclude;. For the
310 &b-link-DocbookMan; transformation you
311 can specify a target name, but the actual output names are automatically
312 set from the <literal>refname</literal> entries in your XML source.
315 <para>The Builders &b-link-DocbookHtmlChunked;, &b-link-DocbookHtmlhelp; and
316 &b-link-DocbookSlidesHtml; are special, in that:
318 <orderedlist><listitem><para>they create a large set of files, where the exact names and their number depend
319 on the content of the source file, and
322 <listitem><para>the main target is always named <filename>index.html</filename>, i.e. the output name for the
323 XSL transformation is not picked up by the stylesheets.
327 <para>As a result, there is simply no use in specifying a target HTML name.
328 So the basic syntax for these builders is always:
330 <screen>env = Environment(tools=['docbook'])
331 env.DocbookHtmlhelp('manual')
334 <para>If you want to use a specific XSL file, you can set the
335 additional <parameter>xsl</parameter> parameter to your
336 Builder call as follows:
338 <screen>env.DocbookHtml('other.html', 'manual.xml', xsl='html.xsl')
340 <para>Since this may get tedious if you always use the same local naming for your customized XSL files,
341 e.g. <filename>html.xsl</filename> for HTML and <filename>pdf.xsl</filename> for PDF output, a set of
342 variables for setting the default XSL name is provided. These are:
344 <screen>DOCBOOK_DEFAULT_XSL_HTML
345 DOCBOOK_DEFAULT_XSL_HTMLCHUNKED
346 DOCBOOK_DEFAULT_XSL_HTMLHELP
347 DOCBOOK_DEFAULT_XSL_PDF
348 DOCBOOK_DEFAULT_XSL_EPUB
349 DOCBOOK_DEFAULT_XSL_MAN
350 DOCBOOK_DEFAULT_XSL_SLIDESPDF
351 DOCBOOK_DEFAULT_XSL_SLIDESHTML
353 <para>and you can set them when constructing your environment:
358 DOCBOOK_DEFAULT_XSL_HTML='html.xsl',
359 DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl',
361 env.DocbookHtml('manual') # now uses html.xsl
363 <para>Sets: &cv-link-DOCBOOK_DEFAULT_XSL_EPUB;, &cv-link-DOCBOOK_DEFAULT_XSL_HTML;, &cv-link-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED;, &cv-link-DOCBOOK_DEFAULT_XSL_HTMLHELP;, &cv-link-DOCBOOK_DEFAULT_XSL_MAN;, &cv-link-DOCBOOK_DEFAULT_XSL_PDF;, &cv-link-DOCBOOK_DEFAULT_XSL_SLIDESHTML;, &cv-link-DOCBOOK_DEFAULT_XSL_SLIDESPDF;, &cv-link-DOCBOOK_FOP;, &cv-link-DOCBOOK_FOPCOM;, &cv-link-DOCBOOK_FOPFLAGS;, &cv-link-DOCBOOK_XMLLINT;, &cv-link-DOCBOOK_XMLLINTCOM;, &cv-link-DOCBOOK_XMLLINTFLAGS;, &cv-link-DOCBOOK_XSLTPROC;, &cv-link-DOCBOOK_XSLTPROCCOM;, &cv-link-DOCBOOK_XSLTPROCFLAGS;, &cv-link-DOCBOOK_XSLTPROCPARAMS;.</para><para>Uses: &cv-link-DOCBOOK_FOPCOMSTR;, &cv-link-DOCBOOK_XMLLINTCOMSTR;, &cv-link-DOCBOOK_XSLTPROCCOMSTR;.</para></listitem>
365 <varlistentry id="t-dvi">
368 Attaches the &b-link-DVI; builder to the
369 construction environment.
373 <varlistentry id="t-dvipdf">
376 Sets construction variables for the dvipdf utility.
378 <para>Sets: &cv-link-DVIPDF;, &cv-link-DVIPDFCOM;, &cv-link-DVIPDFFLAGS;.</para><para>Uses: &cv-link-DVIPDFCOMSTR;.</para></listitem>
380 <varlistentry id="t-dvips">
383 Sets construction variables for the dvips utility.
385 <para>Sets: &cv-link-DVIPS;, &cv-link-DVIPSFLAGS;, &cv-link-PSCOM;, &cv-link-PSPREFIX;, &cv-link-PSSUFFIX;.</para><para>Uses: &cv-link-PSCOMSTR;.</para></listitem>
387 <varlistentry id="t-f03">
390 Set construction variables for generic POSIX Fortran 03 compilers.
392 <para>Sets: &cv-link-F03;, &cv-link-F03COM;, &cv-link-F03FLAGS;, &cv-link-F03PPCOM;, &cv-link-SHF03;, &cv-link-SHF03COM;, &cv-link-SHF03FLAGS;, &cv-link-SHF03PPCOM;, &cv-link-_F03INCFLAGS;.</para><para>Uses: &cv-link-F03COMSTR;, &cv-link-F03PPCOMSTR;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-SHF03COMSTR;, &cv-link-SHF03PPCOMSTR;.</para></listitem>
394 <varlistentry id="t-f08">
397 Set construction variables for generic POSIX Fortran 08 compilers.
399 <para>Sets: &cv-link-F08;, &cv-link-F08COM;, &cv-link-F08FLAGS;, &cv-link-F08PPCOM;, &cv-link-SHF08;, &cv-link-SHF08COM;, &cv-link-SHF08FLAGS;, &cv-link-SHF08PPCOM;, &cv-link-_F08INCFLAGS;.</para><para>Uses: &cv-link-F08COMSTR;, &cv-link-F08PPCOMSTR;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-SHF08COMSTR;, &cv-link-SHF08PPCOMSTR;.</para></listitem>
401 <varlistentry id="t-f77">
404 Set construction variables for generic POSIX Fortran 77 compilers.
406 <para>Sets: &cv-link-F77;, &cv-link-F77COM;, &cv-link-F77FILESUFFIXES;, &cv-link-F77FLAGS;, &cv-link-F77PPCOM;, &cv-link-F77PPFILESUFFIXES;, &cv-link-FORTRAN;, &cv-link-FORTRANCOM;, &cv-link-FORTRANFLAGS;, &cv-link-SHF77;, &cv-link-SHF77COM;, &cv-link-SHF77FLAGS;, &cv-link-SHF77PPCOM;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANCOM;, &cv-link-SHFORTRANFLAGS;, &cv-link-SHFORTRANPPCOM;, &cv-link-_F77INCFLAGS;.</para><para>Uses: &cv-link-F77COMSTR;, &cv-link-F77PPCOMSTR;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-FORTRANCOMSTR;, &cv-link-FORTRANFLAGS;, &cv-link-FORTRANPPCOMSTR;, &cv-link-SHF77COMSTR;, &cv-link-SHF77PPCOMSTR;, &cv-link-SHFORTRANCOMSTR;, &cv-link-SHFORTRANFLAGS;, &cv-link-SHFORTRANPPCOMSTR;.</para></listitem>
408 <varlistentry id="t-f90">
411 Set construction variables for generic POSIX Fortran 90 compilers.
413 <para>Sets: &cv-link-F90;, &cv-link-F90COM;, &cv-link-F90FLAGS;, &cv-link-F90PPCOM;, &cv-link-SHF90;, &cv-link-SHF90COM;, &cv-link-SHF90FLAGS;, &cv-link-SHF90PPCOM;, &cv-link-_F90INCFLAGS;.</para><para>Uses: &cv-link-F90COMSTR;, &cv-link-F90PPCOMSTR;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-SHF90COMSTR;, &cv-link-SHF90PPCOMSTR;.</para></listitem>
415 <varlistentry id="t-f95">
418 Set construction variables for generic POSIX Fortran 95 compilers.
420 <para>Sets: &cv-link-F95;, &cv-link-F95COM;, &cv-link-F95FLAGS;, &cv-link-F95PPCOM;, &cv-link-SHF95;, &cv-link-SHF95COM;, &cv-link-SHF95FLAGS;, &cv-link-SHF95PPCOM;, &cv-link-_F95INCFLAGS;.</para><para>Uses: &cv-link-F95COMSTR;, &cv-link-F95PPCOMSTR;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-SHF95COMSTR;, &cv-link-SHF95PPCOMSTR;.</para></listitem>
422 <varlistentry id="t-fortran">
425 Set &consvars; for generic POSIX Fortran compilers.
427 <para>Sets: &cv-link-FORTRAN;, &cv-link-FORTRANCOM;, &cv-link-FORTRANFLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANCOM;, &cv-link-SHFORTRANFLAGS;, &cv-link-SHFORTRANPPCOM;.</para><para>Uses: &cv-link-CPPFLAGS;, &cv-link-FORTRANCOMSTR;, &cv-link-FORTRANPPCOMSTR;, &cv-link-SHFORTRANCOMSTR;, &cv-link-SHFORTRANPPCOMSTR;, &cv-link-_CPPDEFFLAGS;.</para></listitem>
429 <varlistentry id="t-gXX">
432 Set construction variables for the &gXX; C++ compiler.
434 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJSUFFIX;.</para></listitem>
436 <varlistentry id="t-g77">
439 Set construction variables for the &g77; Fortran compiler.
441 <para>Sets: &cv-link-F77;, &cv-link-F77COM;, &cv-link-F77FILESUFFIXES;, &cv-link-F77PPCOM;, &cv-link-F77PPFILESUFFIXES;, &cv-link-FORTRAN;, &cv-link-FORTRANCOM;, &cv-link-FORTRANPPCOM;, &cv-link-SHF77;, &cv-link-SHF77COM;, &cv-link-SHF77FLAGS;, &cv-link-SHF77PPCOM;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANCOM;, &cv-link-SHFORTRANFLAGS;, &cv-link-SHFORTRANPPCOM;.</para><para>Uses: &cv-link-F77FLAGS;, &cv-link-FORTRANCOMMONFLAGS;, &cv-link-FORTRANFLAGS;.</para></listitem>
443 <varlistentry id="t-gas">
446 Sets construction variables for the &gas; assembler.
447 Calls the &t-link-as; tool.
449 <para>Sets: &cv-link-AS;.</para></listitem>
451 <varlistentry id="t-gcc">
454 Set construction variables for the &gcc; C compiler.
456 <para>Sets: &cv-link-CC;, &cv-link-CCDEPFLAGS;, &cv-link-CCVERSION;, &cv-link-SHCCFLAGS;.</para></listitem>
458 <varlistentry id="t-gdc">
461 Sets construction variables for the D language compiler GDC.
463 <para>Sets: &cv-link-DC;, &cv-link-DCOM;, &cv-link-DDEBUG;, &cv-link-DDEBUGPREFIX;, &cv-link-DDEBUGSUFFIX;, &cv-link-DFILESUFFIX;, &cv-link-DFLAGPREFIX;, &cv-link-DFLAGS;, &cv-link-DFLAGSUFFIX;, &cv-link-DINCPREFIX;, &cv-link-DINCSUFFIX;, &cv-link-DLIB;, &cv-link-DLIBCOM;, &cv-link-DLIBDIRPREFIX;, &cv-link-DLIBDIRSUFFIX;, &cv-link-DLIBFLAGPREFIX;, &cv-link-DLIBFLAGSUFFIX;, &cv-link-DLIBLINKPREFIX;, &cv-link-DLIBLINKSUFFIX;, &cv-link-DLINK;, &cv-link-DLINKCOM;, &cv-link-DLINKFLAGPREFIX;, &cv-link-DLINKFLAGS;, &cv-link-DLINKFLAGSUFFIX;, &cv-link-DPATH;, &cv-link-DRPATHPREFIX;, &cv-link-DRPATHSUFFIX;, &cv-link-DVERPREFIX;, &cv-link-DVERSIONS;, &cv-link-DVERSUFFIX;, &cv-link-SHDC;, &cv-link-SHDCOM;, &cv-link-SHDLIBVERSIONFLAGS;, &cv-link-SHDLINK;, &cv-link-SHDLINKCOM;, &cv-link-SHDLINKFLAGS;.</para></listitem>
465 <varlistentry id="t-gettext">
468 This is actually a toolset, which supports internationalization and
469 localization of software being constructed with SCons. The toolset loads
474 <itemizedlist mark="opencircle">
476 &t-link-xgettext; - to extract internationalized messages from source code to
477 <literal>POT</literal> file(s),
480 &t-link-msginit; - may be optionally used to initialize <literal>PO</literal>
484 &t-link-msgmerge; - to update <literal>PO</literal> files, that already contain
485 translated messages,</para></listitem>
487 &t-link-msgfmt; - to compile textual <literal>PO</literal> file to binary
488 installable <literal>MO</literal> file.
494 When you enable &t-gettext;, it internally loads all abovementioned tools,
495 so you're encouraged to see their individual documentation.
499 Each of the above tools provides its own builder(s) which may be used to
500 perform particular activities related to software internationalization. You
501 may be however interested in <emphasis>top-level</emphasis>
502 &b-link-Translate; builder.
506 To use &t-gettext; tools add <literal>'gettext'</literal> tool to your
510 env = Environment( tools = ['default', 'gettext'] )
514 <varlistentry id="t-gfortran">
515 <term>gfortran</term>
517 Sets construction variables for the GNU Fortran compiler.
518 Calls the &t-link-fortran; Tool module to set variables.
520 <para>Sets: &cv-link-F77;, &cv-link-F90;, &cv-link-F95;, &cv-link-FORTRAN;, &cv-link-SHF77;, &cv-link-SHF77FLAGS;, &cv-link-SHF90;, &cv-link-SHF90FLAGS;, &cv-link-SHF95;, &cv-link-SHF95FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
522 <varlistentry id="t-gnulink">
525 Set construction variables for GNU linker/loader.
527 <para>Sets: &cv-link-LDMODULEVERSIONFLAGS;, &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLIBVERSIONFLAGS;, &cv-link-SHLINKFLAGS;, &cv-link-_LDMODULESONAME;, &cv-link-_SHLIBSONAME;.</para></listitem>
529 <varlistentry id="t-gs">
532 This Tool sets the required construction variables for working with
533 the Ghostscript software. It also registers an appropriate Action
534 with the &b-link-PDF; Builder, such that the conversion from
535 PS/EPS to PDF happens automatically for the TeX/LaTeX toolchain.
536 Finally, it adds an explicit &b-link-Gs; Builder for Ghostscript
539 <para>Sets: &cv-link-GS;, &cv-link-GSCOM;, &cv-link-GSFLAGS;.</para><para>Uses: &cv-link-GSCOMSTR;.</para></listitem>
541 <varlistentry id="t-hpcXX">
544 Set construction variables for the compilers aCC on HP/UX systems.
548 <varlistentry id="t-hpcc">
551 Set construction variables for
552 <application>aCC</application> compilers on HP/UX systems.
553 Calls the &t-link-cXX; tool for additional variables.
555 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXXFLAGS;.</para></listitem>
557 <varlistentry id="t-hplink">
560 Sets construction variables for the linker on HP/UX systems.
562 <para>Sets: &cv-link-LINKFLAGS;, &cv-link-SHLIBSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
564 <varlistentry id="t-icc">
567 Sets construction variables for the
568 <application>icc</application> compiler on OS/2 systems.
570 <para>Sets: &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CFILESUFFIX;, &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-CXXCOM;, &cv-link-CXXFILESUFFIX;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;.</para><para>Uses: &cv-link-CCFLAGS;, &cv-link-CFLAGS;, &cv-link-CPPFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_CPPINCFLAGS;.</para></listitem>
572 <varlistentry id="t-icl">
575 Sets construction variables for the Intel C/C++ compiler.
576 Calls the &t-intelc; Tool module to set its variables.
580 <varlistentry id="t-ifl">
583 Sets construction variables for the Intel Fortran compiler.
585 <para>Sets: &cv-link-FORTRAN;, &cv-link-FORTRANCOM;, &cv-link-FORTRANPPCOM;, &cv-link-SHFORTRANCOM;, &cv-link-SHFORTRANPPCOM;.</para><para>Uses: &cv-link-CPPFLAGS;, &cv-link-FORTRANFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_FORTRANINCFLAGS;.</para></listitem>
587 <varlistentry id="t-ifort">
590 Sets construction variables for newer versions
591 of the Intel Fortran compiler for Linux.
593 <para>Sets: &cv-link-F77;, &cv-link-F90;, &cv-link-F95;, &cv-link-FORTRAN;, &cv-link-SHF77;, &cv-link-SHF77FLAGS;, &cv-link-SHF90;, &cv-link-SHF90FLAGS;, &cv-link-SHF95;, &cv-link-SHF95FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
595 <varlistentry id="t-ilink">
598 Sets construction variables for the
599 <application>ilink</application> linker on OS/2 systems.
601 <para>Sets: &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;.</para></listitem>
603 <varlistentry id="t-ilink32">
606 Sets construction variables for the Borland
607 <application>ilink32</application> linker.
609 <para>Sets: &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;.</para></listitem>
611 <varlistentry id="t-install">
614 Sets construction variables for file
615 and directory installation.
617 <para>Sets: &cv-link-INSTALL;, &cv-link-INSTALLSTR;.</para></listitem>
619 <varlistentry id="t-intelc">
622 Sets construction variables for the Intel C/C++ compiler
623 (Linux and Windows, version 7 and later).
624 Calls the &t-link-gcc; or &t-link-msvc;
625 (on Linux and Windows, respectively)
626 tool to set underlying variables.
628 <para>Sets: &cv-link-AR;, &cv-link-CC;, &cv-link-CXX;, &cv-link-INTEL_C_COMPILER_VERSION;, &cv-link-LINK;.</para></listitem>
630 <varlistentry id="t-jar">
633 Sets construction variables for the &jar; utility.
635 <para>Sets: &cv-link-JAR;, &cv-link-JARCOM;, &cv-link-JARFLAGS;, &cv-link-JARSUFFIX;.</para><para>Uses: &cv-link-JARCOMSTR;.</para></listitem>
637 <varlistentry id="t-javac">
640 Sets construction variables for the &javac; compiler.
642 <para>Sets: &cv-link-JAVABOOTCLASSPATH;, &cv-link-JAVAC;, &cv-link-JAVACCOM;, &cv-link-JAVACFLAGS;, &cv-link-JAVACLASSPATH;, &cv-link-JAVACLASSSUFFIX;, &cv-link-JAVAINCLUDES;, &cv-link-JAVASOURCEPATH;, &cv-link-JAVASUFFIX;.</para><para>Uses: &cv-link-JAVACCOMSTR;.</para></listitem>
644 <varlistentry id="t-javah">
647 Sets construction variables for the &javah; tool.
649 <para>Sets: &cv-link-JAVACLASSSUFFIX;, &cv-link-JAVAH;, &cv-link-JAVAHCOM;, &cv-link-JAVAHFLAGS;.</para><para>Uses: &cv-link-JAVACLASSPATH;, &cv-link-JAVAHCOMSTR;.</para></listitem>
651 <varlistentry id="t-latex">
654 Sets construction variables for the &latex; utility.
656 <para>Sets: &cv-link-LATEX;, &cv-link-LATEXCOM;, &cv-link-LATEXFLAGS;.</para><para>Uses: &cv-link-LATEXCOMSTR;.</para></listitem>
658 <varlistentry id="t-ldc">
661 Sets construction variables for the D language compiler LDC2.
663 <para>Sets: &cv-link-DC;, &cv-link-DCOM;, &cv-link-DDEBUG;, &cv-link-DDEBUGPREFIX;, &cv-link-DDEBUGSUFFIX;, &cv-link-DFILESUFFIX;, &cv-link-DFLAGPREFIX;, &cv-link-DFLAGS;, &cv-link-DFLAGSUFFIX;, &cv-link-DINCPREFIX;, &cv-link-DINCSUFFIX;, &cv-link-DLIB;, &cv-link-DLIBCOM;, &cv-link-DLIBDIRPREFIX;, &cv-link-DLIBDIRSUFFIX;, &cv-link-DLIBFLAGPREFIX;, &cv-link-DLIBFLAGSUFFIX;, &cv-link-DLIBLINKPREFIX;, &cv-link-DLIBLINKSUFFIX;, &cv-link-DLINK;, &cv-link-DLINKCOM;, &cv-link-DLINKFLAGPREFIX;, &cv-link-DLINKFLAGS;, &cv-link-DLINKFLAGSUFFIX;, &cv-link-DPATH;, &cv-link-DRPATHPREFIX;, &cv-link-DRPATHSUFFIX;, &cv-link-DVERPREFIX;, &cv-link-DVERSIONS;, &cv-link-DVERSUFFIX;, &cv-link-SHDC;, &cv-link-SHDCOM;, &cv-link-SHDLIBVERSIONFLAGS;, &cv-link-SHDLINK;, &cv-link-SHDLINKCOM;, &cv-link-SHDLINKFLAGS;.</para></listitem>
665 <varlistentry id="t-lex">
668 Sets construction variables for the &lex; lexical analyser.
670 <para>Sets: &cv-link-LEX;, &cv-link-LEXCOM;, &cv-link-LEXFLAGS;, &cv-link-LEXUNISTD;.</para><para>Uses: &cv-link-LEXCOMSTR;, &cv-link-LEXFLAGS;, &cv-link-LEX_HEADER_FILE;, &cv-link-LEX_TABLES_FILE;.</para></listitem>
672 <varlistentry id="t-link">
675 Sets construction variables for generic POSIX linkers. This is
676 a "smart" linker tool which selects a compiler to complete the linking
677 based on the types of source files.
679 <para>Sets: &cv-link-LDMODULE;, &cv-link-LDMODULECOM;, &cv-link-LDMODULEFLAGS;, &cv-link-LDMODULENOVERSIONSYMLINKS;, &cv-link-LDMODULEPREFIX;, &cv-link-LDMODULESUFFIX;, &cv-link-LDMODULEVERSION;, &cv-link-LDMODULEVERSIONFLAGS;, &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;, &cv-link-SHLIBSUFFIX;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-__LDMODULEVERSIONFLAGS;, &cv-link-__SHLIBVERSIONFLAGS;.</para><para>Uses: &cv-link-LDMODULECOMSTR;, &cv-link-LINKCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
681 <varlistentry id="t-linkloc">
684 Sets construction variables for the
685 <application>LinkLoc</application>
686 linker for the Phar Lap ETS embedded operating system.
688 <para>Sets: &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;.</para><para>Uses: &cv-link-LINKCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
690 <varlistentry id="t-m4">
693 Sets construction variables for the &m4; macro processor.
695 <para>Sets: &cv-link-M4;, &cv-link-M4COM;, &cv-link-M4FLAGS;.</para><para>Uses: &cv-link-M4COMSTR;.</para></listitem>
697 <varlistentry id="t-masm">
700 Sets construction variables for the Microsoft assembler.
702 <para>Sets: &cv-link-AS;, &cv-link-ASCOM;, &cv-link-ASFLAGS;, &cv-link-ASPPCOM;, &cv-link-ASPPFLAGS;.</para><para>Uses: &cv-link-ASCOMSTR;, &cv-link-ASPPCOMSTR;, &cv-link-CPPFLAGS;, &cv-link-_CPPDEFFLAGS;, &cv-link-_CPPINCFLAGS;.</para></listitem>
704 <varlistentry id="t-midl">
707 Sets construction variables for the Microsoft IDL compiler.
709 <para>Sets: &cv-link-MIDL;, &cv-link-MIDLCOM;, &cv-link-MIDLFLAGS;.</para><para>Uses: &cv-link-MIDLCOMSTR;.</para></listitem>
711 <varlistentry id="t-mingw">
714 Sets construction variables for MinGW (Minimal Gnu on Windows).
716 <para>Sets: &cv-link-AS;, &cv-link-CC;, &cv-link-CXX;, &cv-link-LDMODULECOM;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;, &cv-link-OBJSUFFIX;, &cv-link-RC;, &cv-link-RCCOM;, &cv-link-RCFLAGS;, &cv-link-RCINCFLAGS;, &cv-link-RCINCPREFIX;, &cv-link-RCINCSUFFIX;, &cv-link-SHCCFLAGS;, &cv-link-SHCXXFLAGS;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-SHOBJSUFFIX;, &cv-link-WINDOWSDEFPREFIX;, &cv-link-WINDOWSDEFSUFFIX;.</para><para>Uses: &cv-link-RCCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
718 <varlistentry id="t-msgfmt">
721 This scons tool is a part of scons &t-link-gettext; toolset. It provides scons
722 interface to <command>msgfmt(1)</command> command, which generates binary
723 message catalog (<literal>MO</literal>) from a textual translation description
724 (<literal>PO</literal>).
726 <para>Sets: &cv-link-MOSUFFIX;, &cv-link-MSGFMT;, &cv-link-MSGFMTCOM;, &cv-link-MSGFMTCOMSTR;, &cv-link-MSGFMTFLAGS;, &cv-link-POSUFFIX;.</para><para>Uses: &cv-link-LINGUAS_FILE;.</para></listitem>
728 <varlistentry id="t-msginit">
731 This scons tool is a part of scons &t-link-gettext; toolset. It provides
732 scons interface to <command>msginit(1)</command> program, which creates new
733 <literal>PO</literal> file, initializing the meta information with values from
734 user's environment (or options).
736 <para>Sets: &cv-link-MSGINIT;, &cv-link-MSGINITCOM;, &cv-link-MSGINITCOMSTR;, &cv-link-MSGINITFLAGS;, &cv-link-POAUTOINIT;, &cv-link-POCREATE_ALIAS;, &cv-link-POSUFFIX;, &cv-link-POTSUFFIX;, &cv-link-_MSGINITLOCALE;.</para><para>Uses: &cv-link-LINGUAS_FILE;, &cv-link-POAUTOINIT;, &cv-link-POTDOMAIN;.</para></listitem>
738 <varlistentry id="t-msgmerge">
739 <term>msgmerge</term>
741 This scons tool is a part of scons &t-link-gettext; toolset. It provides
742 scons interface to <command>msgmerge(1)</command> command, which merges two
743 Uniform style <filename>.po</filename> files together.
745 <para>Sets: &cv-link-MSGMERGE;, &cv-link-MSGMERGECOM;, &cv-link-MSGMERGECOMSTR;, &cv-link-MSGMERGEFLAGS;, &cv-link-POSUFFIX;, &cv-link-POTSUFFIX;, &cv-link-POUPDATE_ALIAS;.</para><para>Uses: &cv-link-LINGUAS_FILE;, &cv-link-POAUTOINIT;, &cv-link-POTDOMAIN;.</para></listitem>
747 <varlistentry id="t-mslib">
750 Sets construction variables for the Microsoft
751 <application>mslib</application>
754 <para>Sets: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;.</para><para>Uses: &cv-link-ARCOMSTR;.</para></listitem>
756 <varlistentry id="t-mslink">
759 Sets construction variables for the Microsoft linker.
761 <para>Sets: &cv-link-LDMODULE;, &cv-link-LDMODULECOM;, &cv-link-LDMODULEFLAGS;, &cv-link-LDMODULEPREFIX;, &cv-link-LDMODULESUFFIX;, &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;, &cv-link-REGSVR;, &cv-link-REGSVRCOM;, &cv-link-REGSVRFLAGS;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-WINDOWSDEFPREFIX;, &cv-link-WINDOWSDEFSUFFIX;, &cv-link-WINDOWSEXPPREFIX;, &cv-link-WINDOWSEXPSUFFIX;, &cv-link-WINDOWSPROGMANIFESTPREFIX;, &cv-link-WINDOWSPROGMANIFESTSUFFIX;, &cv-link-WINDOWSSHLIBMANIFESTPREFIX;, &cv-link-WINDOWSSHLIBMANIFESTSUFFIX;, &cv-link-WINDOWS_INSERT_DEF;.</para><para>Uses: &cv-link-LDMODULECOMSTR;, &cv-link-LINKCOMSTR;, &cv-link-REGSVRCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
763 <varlistentry id="t-mssdk">
766 Sets variables for Microsoft Platform SDK and/or Windows SDK.
767 Note that unlike most other Tool modules,
768 mssdk does not set construction variables,
769 but sets the <emphasis>environment variables</emphasis>
770 in the environment &SCons; uses to execute
771 the Microsoft toolchain:
772 <literal>%INCLUDE%</literal>,
773 <literal>%LIB%</literal>,
774 <literal>%LIBPATH%</literal> and
775 <literal>%PATH%</literal>.
777 <para>Uses: &cv-link-MSSDK_DIR;, &cv-link-MSSDK_VERSION;, &cv-link-MSVS_VERSION;.</para></listitem>
779 <varlistentry id="t-msvc">
782 Sets &consvars; for the &MSVC; compiler.
784 <para>Sets: &cv-link-BUILDERS;, &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CCDEPFLAGS;, &cv-link-CCFLAGS;, &cv-link-CCPCHFLAGS;, &cv-link-CCPDBFLAGS;, &cv-link-CFILESUFFIX;, &cv-link-CFLAGS;, &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-CXX;, &cv-link-CXXCOM;, &cv-link-CXXFILESUFFIX;, &cv-link-CXXFLAGS;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;, &cv-link-OBJPREFIX;, &cv-link-OBJSUFFIX;, &cv-link-PCHCOM;, &cv-link-PCHPDBFLAGS;, &cv-link-RC;, &cv-link-RCCOM;, &cv-link-RCFLAGS;, &cv-link-SHCC;, &cv-link-SHCCCOM;, &cv-link-SHCCFLAGS;, &cv-link-SHCFLAGS;, &cv-link-SHCXX;, &cv-link-SHCXXCOM;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJPREFIX;, &cv-link-SHOBJSUFFIX;.</para><para>Uses: &cv-link-CCCOMSTR;, &cv-link-CXXCOMSTR;, &cv-link-MSVC_NOTFOUND_POLICY;, &cv-link-MSVC_SCRIPTERROR_POLICY;, &cv-link-MSVC_SCRIPT_ARGS;, &cv-link-MSVC_SDK_VERSION;, &cv-link-MSVC_SPECTRE_LIBS;, &cv-link-MSVC_TOOLSET_VERSION;, &cv-link-MSVC_USE_SCRIPT;, &cv-link-MSVC_USE_SCRIPT_ARGS;, &cv-link-MSVC_USE_SETTINGS;, &cv-link-MSVC_VERSION;, &cv-link-PCH;, &cv-link-PCHSTOP;, &cv-link-PDB;, &cv-link-SHCCCOMSTR;, &cv-link-SHCXXCOMSTR;.</para></listitem>
786 <varlistentry id="t-msvs">
788 <listitem><para>Sets &consvars; for Microsoft Visual Studio.</para>
789 <para>Sets: &cv-link-MSVSBUILDCOM;, &cv-link-MSVSCLEANCOM;, &cv-link-MSVSENCODING;, &cv-link-MSVSPROJECTCOM;, &cv-link-MSVSREBUILDCOM;, &cv-link-MSVSSCONS;, &cv-link-MSVSSCONSCOM;, &cv-link-MSVSSCONSCRIPT;, &cv-link-MSVSSCONSFLAGS;, &cv-link-MSVSSOLUTIONCOM;.</para></listitem>
791 <varlistentry id="t-mwcc">
794 Sets construction variables for the Metrowerks CodeWarrior compiler.
796 <para>Sets: &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CFILESUFFIX;, &cv-link-CPPDEFPREFIX;, &cv-link-CPPDEFSUFFIX;, &cv-link-CXX;, &cv-link-CXXCOM;, &cv-link-CXXFILESUFFIX;, &cv-link-INCPREFIX;, &cv-link-INCSUFFIX;, &cv-link-MWCW_VERSION;, &cv-link-MWCW_VERSIONS;, &cv-link-SHCC;, &cv-link-SHCCCOM;, &cv-link-SHCCFLAGS;, &cv-link-SHCFLAGS;, &cv-link-SHCXX;, &cv-link-SHCXXCOM;, &cv-link-SHCXXFLAGS;.</para><para>Uses: &cv-link-CCCOMSTR;, &cv-link-CXXCOMSTR;, &cv-link-SHCCCOMSTR;, &cv-link-SHCXXCOMSTR;.</para></listitem>
798 <varlistentry id="t-mwld">
801 Sets construction variables for the Metrowerks CodeWarrior linker.
803 <para>Sets: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;.</para></listitem>
805 <varlistentry id="t-nasm">
808 Sets construction variables for the
809 <application>nasm</application> Netwide Assembler.
811 <para>Sets: &cv-link-AS;, &cv-link-ASCOM;, &cv-link-ASFLAGS;, &cv-link-ASPPCOM;, &cv-link-ASPPFLAGS;.</para><para>Uses: &cv-link-ASCOMSTR;, &cv-link-ASPPCOMSTR;.</para></listitem>
813 <varlistentry id="t-ninja">
816 Sets up the &b-link-Ninja; builder, which generates a &ninja; build file, and then optionally runs &ninja;.
819 <para>This is an experimental feature.
820 This functionality is subject to change and/or removal without a deprecation cycle.
824 <para>Sets: &cv-link-IMPLICIT_COMMAND_DEPENDENCIES;, &cv-link-NINJA_ALIAS_NAME;, &cv-link-NINJA_CMD_ARGS;, &cv-link-NINJA_COMPDB_EXPAND;, &cv-link-NINJA_DEPFILE_PARSE_FORMAT;, &cv-link-NINJA_DIR;, &cv-link-NINJA_DISABLE_AUTO_RUN;, &cv-link-NINJA_ENV_VAR_CACHE;, &cv-link-NINJA_FILE_NAME;, &cv-link-NINJA_FORCE_SCONS_BUILD;, &cv-link-NINJA_GENERATED_SOURCE_ALIAS_NAME;, &cv-link-NINJA_GENERATED_SOURCE_SUFFIXES;, &cv-link-NINJA_MSVC_DEPS_PREFIX;, &cv-link-NINJA_POOL;, &cv-link-NINJA_REGENERATE_DEPS;, &cv-link-NINJA_SCONS_DAEMON_KEEP_ALIVE;, &cv-link-NINJA_SCONS_DAEMON_PORT;, &cv-link-NINJA_SYNTAX;, &cv-link-_NINJA_REGENERATE_DEPS_FUNC;.</para><para>Uses: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CCDEPFLAGS;, &cv-link-CCFLAGS;, &cv-link-CXX;, &cv-link-CXXCOM;, &cv-link-ESCAPE;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-PLATFORM;, &cv-link-PRINT_CMD_LINE_FUNC;, &cv-link-PROGSUFFIX;, &cv-link-RANLIB;, &cv-link-RANLIBCOM;, &cv-link-SHCCCOM;, &cv-link-SHCXXCOM;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;.</para></listitem>
826 <varlistentry id="t-packaging">
827 <term>packaging</term>
829 Sets construction variables for the &b-link-Package; Builder.
830 If this tool is enabled, the <option>--package-type</option>
831 command-line option is also enabled.
835 <varlistentry id="t-pdf">
838 Sets construction variables for the Portable Document Format builder.
840 <para>Sets: &cv-link-PDFPREFIX;, &cv-link-PDFSUFFIX;.</para></listitem>
842 <varlistentry id="t-pdflatex">
843 <term>pdflatex</term>
845 Sets construction variables for the &pdflatex; utility.
847 <para>Sets: &cv-link-LATEXRETRIES;, &cv-link-PDFLATEX;, &cv-link-PDFLATEXCOM;, &cv-link-PDFLATEXFLAGS;.</para><para>Uses: &cv-link-PDFLATEXCOMSTR;.</para></listitem>
849 <varlistentry id="t-pdftex">
852 Sets construction variables for the &pdftex; utility.
854 <para>Sets: &cv-link-LATEXRETRIES;, &cv-link-PDFLATEX;, &cv-link-PDFLATEXCOM;, &cv-link-PDFLATEXFLAGS;, &cv-link-PDFTEX;, &cv-link-PDFTEXCOM;, &cv-link-PDFTEXFLAGS;.</para><para>Uses: &cv-link-PDFLATEXCOMSTR;, &cv-link-PDFTEXCOMSTR;.</para></listitem>
856 <varlistentry id="t-python">
859 Loads the Python source scanner into the invoking environment.
860 When loaded, the scanner will attempt to find implicit
861 dependencies for any Python source files in the list of sources
862 provided to an Action that uses this environment.
864 <para><emphasis>Available since &scons; 4.0.</emphasis>.</para>
867 <varlistentry id="t-qt">
870 Placeholder tool to alert anyone still using qt tools to switch to qt3 or newer tool.
874 <varlistentry id="t-qt3">
877 Sets &consvars; for building Qt3 applications.
881 This tool is only suitable for building targeted to Qt3,
883 (<emphasis>the tool is deprecated since 4.3,
884 and was renamed to qt3 in 4.5.0.
886 There are contributed tools for Qt4 and Qt5, see
887 <ulink url="https://github.com/SCons/scons-contrib">
888 https://github.com/SCons/scons-contrib</ulink>.
889 Qt4 has also passed end of life for standard support (in Dec 2015).
893 Note paths for these &consvars; are assembled
894 using the <function>os.path.join</function> method
895 so they will have the appropriate separator at runtime,
896 but are listed here in the various
897 entries only with the <literal>'/'</literal> separator
902 In addition, the &consvars;
904 &cv-link-LIBPATH; and
905 &cv-link-LIBS; may be modified
907 &cv-link-PROGEMITTER;, &cv-link-SHLIBEMITTER; and &cv-link-LIBEMITTER;
908 are modified. Because the build-performance is affected when using this tool,
909 you have to explicitly specify it at Environment creation:
913 Environment(tools=['default','qt3'])
917 The &t-qt3; tool supports the following operations:
921 <emphasis role="strong">Automatic moc file generation from header files.</emphasis>
922 You do not have to specify moc files explicitly, the tool does it for you.
923 However, there are a few preconditions to do so: Your header file must have
924 the same filebase as your implementation file and must stay in the same
925 directory. It must have one of the suffixes
926 <filename>.h</filename>,
927 <filename>.hpp</filename>,
928 <filename>.H</filename>,
929 <filename>.hxx</filename>,
930 <filename>.hh</filename>.
931 You can turn off automatic moc file generation by setting
932 &cv-link-QT3_AUTOSCAN; to <constant>False</constant>.
933 See also the corresponding
934 &b-link-Moc; Builder.
938 <emphasis role="strong">Automatic moc file generation from C++ files.</emphasis>
939 As described in the Qt documentation, include the moc file at the end of
940 the C++ file. Note that you have to include the file, which is generated
941 by the transformation
942 <literal>${QT3_MOCCXXPREFIX}<basename>${QT3_MOCCXXSUFFIX}</literal>, by default
943 <filename><basename>.mo</filename>. A warning is generated after building the moc file if you
944 do not include the correct file. If you are using &f-link-VariantDir;, you may
945 need to specify <parameter>duplicate=True</parameter>.
946 You can turn off automatic moc file generation by setting &cv-QT3_AUTOSCAN; to
947 <literal>False</literal>. See also the corresponding
948 &b-link-Moc; Builder.
952 <emphasis role="strong">Automatic handling of .ui files.</emphasis>
953 The implementation files generated from <filename>.ui</filename>
954 files are handled much the same as yacc or lex files.
955 Each <command>.ui</command> file given as a source of &b-link-Program;,
956 &b-link-Library; or &b-link-SharedLibrary;
957 will generate three files: the declaration file, the
958 implementation file and a moc file. Because there are also generated headers,
959 you may need to specify <parameter>duplicate=True</parameter> in calls to
961 See also the corresponding
962 &b-link-Uic; Builder.
964 <para>Sets: &cv-link-QT3DIR;, &cv-link-QT3_AUTOSCAN;, &cv-link-QT3_BINPATH;, &cv-link-QT3_CPPPATH;, &cv-link-QT3_LIB;, &cv-link-QT3_LIBPATH;, &cv-link-QT3_MOC;, &cv-link-QT3_MOCCXXPREFIX;, &cv-link-QT3_MOCCXXSUFFIX;, &cv-link-QT3_MOCFROMCXXCOM;, &cv-link-QT3_MOCFROMCXXFLAGS;, &cv-link-QT3_MOCFROMHCOM;, &cv-link-QT3_MOCFROMHFLAGS;, &cv-link-QT3_MOCHPREFIX;, &cv-link-QT3_MOCHSUFFIX;, &cv-link-QT3_UIC;, &cv-link-QT3_UICCOM;, &cv-link-QT3_UICDECLFLAGS;, &cv-link-QT3_UICDECLPREFIX;, &cv-link-QT3_UICDECLSUFFIX;, &cv-link-QT3_UICIMPLFLAGS;, &cv-link-QT3_UICIMPLPREFIX;, &cv-link-QT3_UICIMPLSUFFIX;, &cv-link-QT3_UISUFFIX;.</para><para>Uses: &cv-link-QT3DIR;.</para></listitem>
966 <varlistentry id="t-rmic">
969 Sets construction variables for the &rmic; utility.
971 <para>Sets: &cv-link-JAVACLASSSUFFIX;, &cv-link-RMIC;, &cv-link-RMICCOM;, &cv-link-RMICFLAGS;.</para><para>Uses: &cv-link-RMICCOMSTR;.</para></listitem>
973 <varlistentry id="t-rpcgen">
976 Sets construction variables for building with RPCGEN.
978 <para>Sets: &cv-link-RPCGEN;, &cv-link-RPCGENCLIENTFLAGS;, &cv-link-RPCGENFLAGS;, &cv-link-RPCGENHEADERFLAGS;, &cv-link-RPCGENSERVICEFLAGS;, &cv-link-RPCGENXDRFLAGS;.</para></listitem>
980 <varlistentry id="t-sgiar">
983 Sets construction variables for the SGI library archiver.
985 <para>Sets: &cv-link-AR;, &cv-link-ARCOMSTR;, &cv-link-ARFLAGS;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;, &cv-link-SHLINK;, &cv-link-SHLINKFLAGS;.</para><para>Uses: &cv-link-ARCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
987 <varlistentry id="t-sgicXX">
990 Sets construction variables for the SGI C++ compiler.
992 <para>Sets: &cv-link-CXX;, &cv-link-CXXFLAGS;, &cv-link-SHCXX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
994 <varlistentry id="t-sgicc">
997 Sets construction variables for the SGI C compiler.
999 <para>Sets: &cv-link-CXX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1001 <varlistentry id="t-sgilink">
1002 <term>sgilink</term>
1004 Sets construction variables for the SGI linker.
1006 <para>Sets: &cv-link-LINK;, &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
1008 <varlistentry id="t-sunar">
1011 Sets construction variables for the Sun library archiver.
1013 <para>Sets: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;.</para><para>Uses: &cv-link-ARCOMSTR;.</para></listitem>
1015 <varlistentry id="t-suncXX">
1018 Sets construction variables for the Sun C++ compiler.
1020 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXX;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJPREFIX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1022 <varlistentry id="t-suncc">
1025 Sets construction variables for the Sun C compiler.
1027 <para>Sets: &cv-link-CXX;, &cv-link-SHCCFLAGS;, &cv-link-SHOBJPREFIX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1029 <varlistentry id="t-sunf77">
1032 Set construction variables for the Sun &f77; Fortran compiler.
1034 <para>Sets: &cv-link-F77;, &cv-link-FORTRAN;, &cv-link-SHF77;, &cv-link-SHF77FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1036 <varlistentry id="t-sunf90">
1039 Set construction variables for the Sun &f90; Fortran compiler.
1041 <para>Sets: &cv-link-F90;, &cv-link-FORTRAN;, &cv-link-SHF90;, &cv-link-SHF90FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1043 <varlistentry id="t-sunf95">
1046 Set construction variables for the Sun &f95; Fortran compiler.
1048 <para>Sets: &cv-link-F95;, &cv-link-FORTRAN;, &cv-link-SHF95;, &cv-link-SHF95FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1050 <varlistentry id="t-sunlink">
1051 <term>sunlink</term>
1053 Sets construction variables for the Sun linker.
1055 <para>Sets: &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
1057 <varlistentry id="t-swig">
1060 Sets construction variables for the &swig; interface compiler.
1062 <para>Sets: &cv-link-SWIG;, &cv-link-SWIGCFILESUFFIX;, &cv-link-SWIGCOM;, &cv-link-SWIGCXXFILESUFFIX;, &cv-link-SWIGDIRECTORSUFFIX;, &cv-link-SWIGFLAGS;, &cv-link-SWIGINCPREFIX;, &cv-link-SWIGINCSUFFIX;, &cv-link-SWIGPATH;, &cv-link-SWIGVERSION;, &cv-link-_SWIGINCFLAGS;.</para><para>Uses: &cv-link-SWIGCOMSTR;.</para></listitem>
1064 <varlistentry id="t-tar">
1067 Sets construction variables for the &tar; archiver.
1069 <para>Sets: &cv-link-TAR;, &cv-link-TARCOM;, &cv-link-TARFLAGS;, &cv-link-TARSUFFIX;.</para><para>Uses: &cv-link-TARCOMSTR;.</para></listitem>
1071 <varlistentry id="t-tex">
1074 Sets construction variables for the TeX formatter and typesetter.
1076 <para>Sets: &cv-link-BIBTEX;, &cv-link-BIBTEXCOM;, &cv-link-BIBTEXFLAGS;, &cv-link-LATEX;, &cv-link-LATEXCOM;, &cv-link-LATEXFLAGS;, &cv-link-MAKEINDEX;, &cv-link-MAKEINDEXCOM;, &cv-link-MAKEINDEXFLAGS;, &cv-link-TEX;, &cv-link-TEXCOM;, &cv-link-TEXFLAGS;.</para><para>Uses: &cv-link-BIBTEXCOMSTR;, &cv-link-LATEXCOMSTR;, &cv-link-MAKEINDEXCOMSTR;, &cv-link-TEXCOMSTR;.</para></listitem>
1078 <varlistentry id="t-textfile">
1079 <term>textfile</term>
1081 Set &consvars; for the &b-link-Textfile; and &b-link-Substfile; builders.
1083 <para>Sets: &cv-link-FILE_ENCODING;, &cv-link-LINESEPARATOR;, &cv-link-SUBSTFILEPREFIX;, &cv-link-SUBSTFILESUFFIX;, &cv-link-TEXTFILEPREFIX;, &cv-link-TEXTFILESUFFIX;.</para><para>Uses: &cv-link-SUBST_DICT;.</para></listitem>
1085 <varlistentry id="t-tlib">
1088 Sets construction variables for the Borlan
1089 <application>tib</application> library archiver.
1091 <para>Sets: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-LIBPREFIX;, &cv-link-LIBSUFFIX;.</para><para>Uses: &cv-link-ARCOMSTR;.</para></listitem>
1093 <varlistentry id="t-xgettext">
1094 <term>xgettext</term>
1096 This scons tool is a part of scons &t-link-gettext; toolset. It provides
1097 scons interface to <command>xgettext(1)</command>
1098 program, which extracts internationalized messages from source code. The tool
1099 provides &b-POTUpdate; builder to make <literal>PO</literal>
1100 <emphasis>Template</emphasis> files.
1102 <para>Sets: &cv-link-POTSUFFIX;, &cv-link-POTUPDATE_ALIAS;, &cv-link-XGETTEXTCOM;, &cv-link-XGETTEXTCOMSTR;, &cv-link-XGETTEXTFLAGS;, &cv-link-XGETTEXTFROM;, &cv-link-XGETTEXTFROMPREFIX;, &cv-link-XGETTEXTFROMSUFFIX;, &cv-link-XGETTEXTPATH;, &cv-link-XGETTEXTPATHPREFIX;, &cv-link-XGETTEXTPATHSUFFIX;, &cv-link-_XGETTEXTDOMAIN;, &cv-link-_XGETTEXTFROMFLAGS;, &cv-link-_XGETTEXTPATHFLAGS;.</para><para>Uses: &cv-link-POTDOMAIN;.</para></listitem>
1104 <varlistentry id="t-yacc">
1107 Sets construction variables for the &yacc; parser generator.
1109 <para>Sets: &cv-link-YACC;, &cv-link-YACCCOM;, &cv-link-YACCFLAGS;, &cv-link-YACCHFILESUFFIX;, &cv-link-YACCHXXFILESUFFIX;, &cv-link-YACCVCGFILESUFFIX;, &cv-link-YACC_GRAPH_FILE_SUFFIX;.</para><para>Uses: &cv-link-YACCCOMSTR;, &cv-link-YACCFLAGS;, &cv-link-YACC_GRAPH_FILE;, &cv-link-YACC_HEADER_FILE;.</para></listitem>
1111 <varlistentry id="t-zip">
1114 Sets construction variables for the &zip; archiver.
1116 <para>Sets: &cv-link-ZIP;, &cv-link-ZIPCOM;, &cv-link-ZIPCOMPRESSION;, &cv-link-ZIPFLAGS;, &cv-link-ZIPSUFFIX;.</para><para>Uses: &cv-link-ZIPCOMSTR;.</para></listitem>