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 A toolset supporting internationalization and
469 localization of software being constructed with &SCons;.
470 The toolset loads the following tools:
474 <itemizedlist mark="opencircle">
476 &t-link-xgettext; - extract internationalized messages from source code to
477 <literal>POT</literal> file(s).
480 &t-link-msginit; - initialize <literal>PO</literal>
481 files during initial translation of a project.
484 &t-link-msgmerge; - update <literal>PO</literal> files that already contain
485 translated messages,</para></listitem>
487 &t-link-msgfmt; - compile textual <literal>PO</literal> files to binary
488 installable <literal>MO</literal> files.
494 When you enable &t-gettext;, it internally loads all the above-mentioned 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 the &t-gettext; tools, add the <literal>'gettext'</literal> tool to your
509 <programlisting language="python">
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 &f-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 analyzer.
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 tool is a part of the &t-link-gettext; toolset.
723 an interface to the <command>msgfmt(1)</command> command
724 by setting up the &b-link-MOFiles; builder,
725 which generates binary message catalog (<literal>MO</literal>) files
726 from a textual translation description
727 (<literal>PO</literal> files).
729 <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>
731 <varlistentry id="t-msginit">
734 This tool is a part of scons &t-link-gettext; toolset. It provides
735 &SCons; an interface to the <command>msginit(1)</command> program,
736 by setting up the &b-link-POInit; builder,
738 <literal>PO</literal> file, initializing the meta information with values from
739 the &consenv; (or options).
741 <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>
743 <varlistentry id="t-msgmerge">
744 <term>msgmerge</term>
746 This tool is a part of scons &t-link-gettext; toolset. It provides
747 &SCons; an interface to the <command>msgmerge(1)</command> command,
748 by setting up the &b-link-POUpdate; builder,
750 Uniform style <filename>.po</filename> files together.
752 <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>
754 <varlistentry id="t-mslib">
757 Sets construction variables for the Microsoft
758 <application>mslib</application>
761 <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>
763 <varlistentry id="t-mslink">
766 Sets construction variables for the Microsoft linker.
768 <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>
770 <varlistentry id="t-mssdk">
773 Sets variables for Microsoft Platform SDK and/or Windows SDK.
774 Note that unlike most other Tool modules,
775 mssdk does not set construction variables,
776 but sets the <emphasis>environment variables</emphasis>
777 in the environment &SCons; uses to execute
778 the Microsoft toolchain:
779 <literal>%INCLUDE%</literal>,
780 <literal>%LIB%</literal>,
781 <literal>%LIBPATH%</literal> and
782 <literal>%PATH%</literal>.
784 <para>Uses: &cv-link-MSSDK_DIR;, &cv-link-MSSDK_VERSION;, &cv-link-MSVS_VERSION;.</para></listitem>
786 <varlistentry id="t-msvc">
789 Sets &consvars; for the &MSVC; compiler.
791 <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>
793 <varlistentry id="t-msvs">
795 <listitem><para>Sets &consvars; for Microsoft Visual Studio.</para>
796 <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>
798 <varlistentry id="t-mwcc">
801 Sets construction variables for the Metrowerks CodeWarrior compiler.
803 <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>
805 <varlistentry id="t-mwld">
808 Sets construction variables for the Metrowerks CodeWarrior linker.
810 <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>
812 <varlistentry id="t-nasm">
815 Sets construction variables for the
816 <application>nasm</application> Netwide Assembler.
818 <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>
820 <varlistentry id="t-ninja">
823 Sets up the &b-link-Ninja; builder, which generates a &ninja; build file, and then optionally runs &ninja;.
826 <para>This is an experimental feature.
827 This functionality is subject to change and/or removal without a deprecation cycle.
831 <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>
833 <varlistentry id="t-packaging">
834 <term>packaging</term>
836 Sets construction variables for the &b-link-Package; Builder.
837 If this tool is enabled, the <option>--package-type</option>
838 command-line option is also enabled.
842 <varlistentry id="t-pdf">
845 Sets construction variables for the Portable Document Format builder.
847 <para>Sets: &cv-link-PDFPREFIX;, &cv-link-PDFSUFFIX;.</para></listitem>
849 <varlistentry id="t-pdflatex">
850 <term>pdflatex</term>
852 Sets construction variables for the &pdflatex; utility.
854 <para>Sets: &cv-link-LATEXRETRIES;, &cv-link-PDFLATEX;, &cv-link-PDFLATEXCOM;, &cv-link-PDFLATEXFLAGS;.</para><para>Uses: &cv-link-PDFLATEXCOMSTR;.</para></listitem>
856 <varlistentry id="t-pdftex">
859 Sets construction variables for the &pdftex; utility.
861 <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>
863 <varlistentry id="t-python">
866 Loads the Python source scanner into the invoking environment.
867 When loaded, the scanner will attempt to find implicit
868 dependencies for any Python source files in the list of sources
869 provided to an Action that uses this environment.
871 <para><emphasis>Available since &scons; 4.0.</emphasis>.</para>
874 <varlistentry id="t-qt">
877 Placeholder tool to alert anyone still using qt tools to switch to qt3 or newer tool.
881 <varlistentry id="t-qt3">
884 Sets &consvars; for building Qt3 applications.
888 This tool is only suitable for building targeted to Qt3,
890 (<emphasis>the tool is deprecated since 4.3,
891 and was renamed to qt3 in 4.5.0.
893 There are contributed tools for Qt4 and Qt5, see
894 <ulink url="https://github.com/SCons/scons-contrib">
895 https://github.com/SCons/scons-contrib</ulink>.
896 Qt4 has also passed end of life for standard support (in Dec 2015).
900 Note paths for these &consvars; are assembled
901 using the <function>os.path.join</function> method
902 so they will have the appropriate separator at runtime,
903 but are listed here in the various
904 entries only with the <literal>'/'</literal> separator
909 In addition, the &consvars;
911 &cv-link-LIBPATH; and
912 &cv-link-LIBS; may be modified
914 &cv-link-PROGEMITTER;, &cv-link-SHLIBEMITTER; and &cv-link-LIBEMITTER;
915 are modified. Because the build-performance is affected when using this tool,
916 you have to explicitly specify it at Environment creation:
920 Environment(tools=['default','qt3'])
924 The &t-qt3; tool supports the following operations:
928 <emphasis role="strong">Automatic moc file generation from header files.</emphasis>
929 You do not have to specify moc files explicitly, the tool does it for you.
930 However, there are a few preconditions to do so: Your header file must have
931 the same basename as your implementation file and must stay in the same
932 directory. It must have one of the suffixes
933 <filename>.h</filename>,
934 <filename>.hpp</filename>,
935 <filename>.H</filename>,
936 <filename>.hxx</filename>,
937 <filename>.hh</filename>.
938 You can turn off automatic moc file generation by setting
939 &cv-link-QT3_AUTOSCAN; to <constant>False</constant>.
940 See also the corresponding
941 &b-link-Moc; Builder.
945 <emphasis role="strong">Automatic moc file generation from C++ files.</emphasis>
946 As described in the Qt documentation, include the moc file at the end of
947 the C++ file. Note that you have to include the file, which is generated
948 by the transformation
949 <literal>${QT3_MOCCXXPREFIX}<basename>${QT3_MOCCXXSUFFIX}</literal>, by default
950 <filename><basename>.mo</filename>. A warning is generated after building the moc file if you
951 do not include the correct file. If you are using &f-link-VariantDir;, you may
952 need to specify <parameter>duplicate=True</parameter>.
953 You can turn off automatic moc file generation by setting &cv-QT3_AUTOSCAN; to
954 <literal>False</literal>. See also the corresponding
955 &b-link-Moc; Builder.
959 <emphasis role="strong">Automatic handling of .ui files.</emphasis>
960 The implementation files generated from <filename>.ui</filename>
961 files are handled much the same as yacc or lex files.
962 Each <command>.ui</command> file given as a source of &b-link-Program;,
963 &b-link-Library; or &b-link-SharedLibrary;
964 will generate three files: the declaration file, the
965 implementation file and a moc file. Because there are also generated headers,
966 you may need to specify <parameter>duplicate=True</parameter> in calls to
968 See also the corresponding
969 &b-link-Uic; Builder.
971 <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>
973 <varlistentry id="t-rmic">
976 Sets construction variables for the &rmic; utility.
978 <para>Sets: &cv-link-JAVACLASSSUFFIX;, &cv-link-RMIC;, &cv-link-RMICCOM;, &cv-link-RMICFLAGS;.</para><para>Uses: &cv-link-RMICCOMSTR;.</para></listitem>
980 <varlistentry id="t-rpcgen">
983 Sets construction variables for building with RPCGEN.
985 <para>Sets: &cv-link-RPCGEN;, &cv-link-RPCGENCLIENTFLAGS;, &cv-link-RPCGENFLAGS;, &cv-link-RPCGENHEADERFLAGS;, &cv-link-RPCGENSERVICEFLAGS;, &cv-link-RPCGENXDRFLAGS;.</para></listitem>
987 <varlistentry id="t-sgiar">
990 Sets construction variables for the SGI library archiver.
992 <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>
994 <varlistentry id="t-sgicXX">
997 Sets construction variables for the SGI C++ compiler.
999 <para>Sets: &cv-link-CXX;, &cv-link-CXXFLAGS;, &cv-link-SHCXX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1001 <varlistentry id="t-sgicc">
1004 Sets construction variables for the SGI C compiler.
1006 <para>Sets: &cv-link-CXX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1008 <varlistentry id="t-sgilink">
1009 <term>sgilink</term>
1011 Sets construction variables for the SGI linker.
1013 <para>Sets: &cv-link-LINK;, &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
1015 <varlistentry id="t-sunar">
1018 Sets construction variables for the Sun library archiver.
1020 <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>
1022 <varlistentry id="t-suncXX">
1025 Sets construction variables for the Sun C++ compiler.
1027 <para>Sets: &cv-link-CXX;, &cv-link-CXXVERSION;, &cv-link-SHCXX;, &cv-link-SHCXXFLAGS;, &cv-link-SHOBJPREFIX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1029 <varlistentry id="t-suncc">
1032 Sets construction variables for the Sun C compiler.
1034 <para>Sets: &cv-link-CXX;, &cv-link-SHCCFLAGS;, &cv-link-SHOBJPREFIX;, &cv-link-SHOBJSUFFIX;.</para></listitem>
1036 <varlistentry id="t-sunf77">
1039 Set construction variables for the Sun &f77; Fortran compiler.
1041 <para>Sets: &cv-link-F77;, &cv-link-FORTRAN;, &cv-link-SHF77;, &cv-link-SHF77FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1043 <varlistentry id="t-sunf90">
1046 Set construction variables for the Sun &f90; Fortran compiler.
1048 <para>Sets: &cv-link-F90;, &cv-link-FORTRAN;, &cv-link-SHF90;, &cv-link-SHF90FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1050 <varlistentry id="t-sunf95">
1053 Set construction variables for the Sun &f95; Fortran compiler.
1055 <para>Sets: &cv-link-F95;, &cv-link-FORTRAN;, &cv-link-SHF95;, &cv-link-SHF95FLAGS;, &cv-link-SHFORTRAN;, &cv-link-SHFORTRANFLAGS;.</para></listitem>
1057 <varlistentry id="t-sunlink">
1058 <term>sunlink</term>
1060 Sets construction variables for the Sun linker.
1062 <para>Sets: &cv-link-RPATHPREFIX;, &cv-link-RPATHSUFFIX;, &cv-link-SHLINKFLAGS;.</para></listitem>
1064 <varlistentry id="t-swig">
1067 Sets construction variables for the &swig; interface compiler.
1069 <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>
1071 <varlistentry id="t-tar">
1074 Sets construction variables for the &tar; archiver.
1076 <para>Sets: &cv-link-TAR;, &cv-link-TARCOM;, &cv-link-TARFLAGS;, &cv-link-TARSUFFIX;.</para><para>Uses: &cv-link-TARCOMSTR;.</para></listitem>
1078 <varlistentry id="t-tex">
1081 Sets construction variables for the TeX formatter and typesetter.
1083 <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>
1085 <varlistentry id="t-textfile">
1086 <term>textfile</term>
1088 Set &consvars; for the &b-link-Textfile; and &b-link-Substfile; builders.
1090 <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>
1092 <varlistentry id="t-tlib">
1095 Sets construction variables for the Borland
1096 <application>tlib</application> library archiver.
1098 <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>
1100 <varlistentry id="t-xgettext">
1101 <term>xgettext</term>
1103 This tool is a part of the &t-link-gettext; toolset. It provides
1104 &SCons; an interface to the <command>xgettext(1)</command>
1105 program, which extracts internationalized messages from source code.
1106 The tool sets up the &b-POTUpdate; builder to make <literal>PO</literal>
1107 <emphasis>Template</emphasis> files.
1109 <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>
1111 <varlistentry id="t-yacc">
1114 Sets construction variables for the &yacc; parser generator.
1116 <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>
1118 <varlistentry id="t-zip">
1121 Sets construction variables for the &zip; archiver.
1123 <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>