summaryrefslogtreecommitdiff
path: root/scons.1
diff options
context:
space:
mode:
Diffstat (limited to 'scons.1')
-rw-r--r--scons.1426
1 files changed, 299 insertions, 127 deletions
diff --git a/scons.1 b/scons.1
index bbbb96c..b9e2594 100644
--- a/scons.1
+++ b/scons.1
@@ -2,12 +2,12 @@
.\" Title: SCONS
.\" Author: Steven Knight
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: <pubdate>2004 - 2016</pubdate>
-.\" Manual: SCons 3.0.1
-.\" Source: SCons 3.0.1 version 3.0.1
+.\" Date: <pubdate>2004 - 2019</pubdate>
+.\" Manual: SCons 3.0.5
+.\" Source: SCons 3.0.5 version 3.0.5
.\" Language: English
.\"
-.TH "SCONS" "1" "<pubdate>2004 - 2016</pubdate>" "SCons 3\&.0\&.1 version 3.0.1" "SCons 3\&.0\&.1"
+.TH "SCONS" "1" "<pubdate>2004 - 2019</pubdate>" "SCons 3\&.0\&.5 version 3.0.5" "SCons 3\&.0\&.5"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -42,8 +42,12 @@ By default,
\fBscons\fR
searches for a file named
\fISConstruct\fR,
-\fISconstruct\fR, or
-\fIsconstruct\fR
+\fISconstruct\fR,
+\fIsconstruct\fR,
+\fISConstruct\&.py\fR
+\fISconstruct\&.py\fR
+or
+\fIsconstruct\&.py\fR
(in that order) in the current directory and reads its configuration from the first file found\&. An alternate file name may be specified via the
\fB\-f\fR
option\&.
@@ -181,7 +185,7 @@ scons
.RE
.\}
.PP
-will build all target files in or below the current directory\&. Explicit default targets (to be built when no targets are specified on the command line) may be defined the SConscript file(s) using the
+will build all target files in or below the current directory\&. Explicit default targets (to be built when no targets are specified on the command line) may be defined in the SConscript file(s) using the
\fBDefault()\fR
function, described below\&.
.PP
@@ -360,7 +364,7 @@ else:
The command\-line variable arguments are also available in the ARGLIST list, indexed by their order on the command line\&. This allows you to process them in order rather than by name, if necessary\&. ARGLIST[0] returns a tuple containing (argname, argvalue)\&. A Python exception is thrown if you try to access a list member that does not exist\&.
.PP
\fBscons\fR
-requires Python version 2\&.7 or later\&. There should be no other dependencies or requirements to run
+requires either Python 2\&.7 or Python 3\&.5 or higher\&. There should be no other dependencies or requirements to run
\fBscons\&.\fR
.PP
By default,
@@ -462,8 +466,12 @@ Change to the specified
\fIdirectory\fR
before searching for the
\fISConstruct\fR,
-\fISconstruct\fR, or
-\fIsconstruct\fR
+\fISconstruct\fR,
+\fIsconstruct\fR,
+\fISConstruct\&.py\fR
+\fISconstruct\&.py\fR
+or
+\fIsconstruct\&.py\fR
file, or doing anything else\&. Multiple
\fB\-C\fR
options are interpreted relative to the previous one, and the right\-most
@@ -471,8 +479,12 @@ options are interpreted relative to the previous one, and the right\-most
option wins\&. (This option is nearly equivalent to
\fB\-f directory/SConstruct\fR, except that it will search for
\fISConstruct\fR,
-\fISconstruct\fR, or
-\fIsconstruct\fR
+\fISconstruct\fR,
+\fIsconstruct\fR,
+\fISConstruct\&.py\fR
+\fISconstruct\&.py\fR
+or
+\fIsconstruct\&.py\fR
in the specified directory\&.)
.RE
.PP
@@ -616,7 +628,8 @@ Prints various time profiling information:
.sp -1
.IP \(bu 2.3
.\}
-The time spent executing each individual build command.RE
+The time spent executing each individual build command
+.RE
.sp
.RS 4
.ie n \{\
@@ -626,7 +639,8 @@ The time spent executing each individual build command.RE
.sp -1
.IP \(bu 2.3
.\}
-The total build time (time SCons ran from beginning to end).RE
+The total build time (time SCons ran from beginning to end)
+.RE
.sp
.RS 4
.ie n \{\
@@ -636,7 +650,8 @@ The total build time (time SCons ran from beginning to end).RE
.sp -1
.IP \(bu 2.3
.\}
-The total time spent reading and executing SConscript files.RE
+The total time spent reading and executing SConscript files
+.RE
.sp
.RS 4
.ie n \{\
@@ -646,8 +661,8 @@ The total time spent reading and executing SConscript files.RE
.sp -1
.IP \(bu 2.3
.\}
-The total time spent SCons itself spend running
-(that is, not counting reading and executing SConscript files).RE
+The total time spent SCons itself spend running (that is, not counting reading and executing SConscript files)
+.RE
.sp
.RS 4
.ie n \{\
@@ -657,7 +672,8 @@ The total time spent SCons itself spend running
.sp -1
.IP \(bu 2.3
.\}
-The total time spent executing all build commands.RE
+The total time spent executing all build commands
+.RE
.sp
.RS 4
.ie n \{\
@@ -667,7 +683,8 @@ The total time spent executing all build commands.RE
.sp -1
.IP \(bu 2.3
.\}
-The elapsed wall\-clock time spent executing those build commands.RE
+The elapsed wall\-clock time spent executing those build commands
+.RE
.sp
.RS 4
.ie n \{\
@@ -677,7 +694,10 @@ The elapsed wall\-clock time spent executing those build commands.RE
.sp -1
.IP \(bu 2.3
.\}
-The time spent processing each file passed to the \fISConscript()\fR function.RE
+The time spent processing each file passed to the
+\fISConscript()\fR
+function
+.RE
.sp
(When
\fBscons\fR
@@ -727,6 +747,11 @@ or
\fIcopy\fR\&. SCons will attempt to duplicate files using the mechanisms in the specified order\&.
.RE
.PP
+\-\-enable\-virtualenv
+.RS 4
+Import virtualenv\-related variables to SCons\&.
+.RE
+.PP
\-f\fI file\fR, \-\-file=\fIfile\fR, \-\-makefile=\fIfile\fR, \-\-sconstruct=\fIfile\fR
.RS 4
Use
@@ -764,6 +789,11 @@ to search for imported Python modules\&. If several
options are used, the directories are searched in the order specified\&.
.RE
.PP
+\-\-ignore\-virtualenv
+.RS 4
+Suppress importing virtualenv\-related variables to SCons\&.
+.RE
+.PP
\-\-implicit\-cache
.RS 4
Cache implicit dependencies\&. This causes
@@ -1153,9 +1183,12 @@ scons \-\-tree=all,prune,status target
.RS 4
Walks up the directory structure until an
\fISConstruct ,\fR
-\fISconstruct\fR
+\fISconstruct ,\fR
+\fIsconstruct ,\fR
+\fISConstruct\&.py\fR
+\fISconstruct\&.py\fR
or
-\fIsconstruct\fR
+\fIsconstruct\&.py\fR
file is found, and uses that as the top of the directory tree\&. If no targets are specified on the command line, only targets at or below the current directory will be built\&.
.RE
.PP
@@ -1291,18 +1324,6 @@ These warnings are enabled by default\&.
Enables or disables warnings about missing SConscript files\&. These warnings are enabled by default\&.
.RE
.PP
-\-\-warn=no\-md5\-module, \-\-warn=no\-no\-md5\-module
-.RS 4
-Enables or disables warnings about the version of Python not having an MD5 checksum module available\&. These warnings are enabled by default\&.
-.RE
-.PP
-\-\-warn=no\-metaclass\-support, \-\-warn=no\-no\-metaclass\-support
-.RS 4
-Enables or disables warnings about the version of Python not supporting metaclasses when the
-\fB\-\-debug=memoizer\fR
-option is used\&. These warnings are enabled by default\&.
-.RE
-.PP
\-\-warn=no\-object\-count, \-\-warn=no\-no\-object\-count
.RS 4
Enables or disables warnings about the
@@ -1630,6 +1651,10 @@ applelink
Sets construction variables for the Apple linker (similar to the GNU linker)\&.
.sp
Sets:
+\fB$APPLELINK_COMPATIBILITY_VERSION\fR,
+\fB$APPLELINK_CURRENT_VERSION\fR,
+\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR,
+\fB$APPLELINK_NO_CURRENT_VERSION\fR,
\fB$FRAMEWORKPATHPREFIX\fR,
\fB$LDMODULECOM\fR,
\fB$LDMODULEFLAGS\fR,
@@ -1638,6 +1663,8 @@ Sets:
\fB$LINKCOM\fR,
\fB$SHLINKCOM\fR,
\fB$SHLINKFLAGS\fR,
+\fB$_APPLELINK_COMPATIBILITY_VERSION\fR,
+\fB$_APPLELINK_CURRENT_VERSION\fR,
\fB$_FRAMEWORKPATH\fR,
\fB$_FRAMEWORKS\fR\&.
.sp
@@ -2747,6 +2774,7 @@ Sets:
\fB$JAVACFLAGS\fR,
\fB$JAVACLASSPATH\fR,
\fB$JAVACLASSSUFFIX\fR,
+\fB$JAVAINCLUDES\fR,
\fB$JAVASOURCEPATH\fR,
\fB$JAVASUFFIX\fR\&.
.sp
@@ -2840,7 +2868,8 @@ lexical analyser\&.
Sets:
\fB$LEX\fR,
\fB$LEXCOM\fR,
-\fB$LEXFLAGS\fR\&.
+\fB$LEXFLAGS\fR,
+\fB$LEXUNISTD\fR\&.
.sp
Uses:
\fB$LEXCOMSTR\fR\&.
@@ -3731,7 +3760,9 @@ env\&.Program(\*(Aqbar\*(Aq, source = \*(Aqbar\&.c foo\&.c\*(Aq\&.split())
Target and source file names that are not absolute path names (that is, do not begin with
\fB/\fR
on POSIX systems or
-\fB\efR on Windows systems, with or without an optional drive letter) are interpreted relative to the directory containing the SConscript\fR
+\fB\e\fR
+on Windows systems, with or without an optional drive letter) are interpreted relative to the directory containing the
+\fBSConscript\fR
file being read\&. An initial
\fB#\fR
(hash mark) on a path name means that the rest of the file name is interpreted relative to the directory containing the top\-level
@@ -4642,9 +4673,10 @@ Examples:
.RS 4
.\}
.nf
-env\&.Java(target = \*(Aqclasses\*(Aq, source = \*(Aqsrc\*(Aq)
-env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(Aqsrc1\*(Aq, \*(Aqsrc2\*(Aq])
-env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(AqFile1\&.java\*(Aq, \*(AqFile2\&.java\*(Aq])
+ env\&.Java(target = \*(Aqclasses\*(Aq, source = \*(Aqsrc\*(Aq)
+ env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(Aqsrc1\*(Aq, \*(Aqsrc2\*(Aq])
+ env\&.Java(target = \*(Aqclasses\*(Aq, source = [\*(AqFile1\&.java\*(Aq, \*(AqFile2\&.java\*(Aq])
+
.fi
.if n \{\
.RE
@@ -4658,8 +4690,9 @@ environment variable to tell the compiler what encoding is used\&. For portibili
.RS 4
.\}
.nf
-env = Environment()
-env[\*(AqENV\*(Aq][\*(AqLANG\*(Aq] = \*(Aqen_GB\&.UTF\-8\*(Aq
+ env = Environment()
+ env[\*(AqENV\*(Aq][\*(AqLANG\*(Aq] = \*(Aqen_GB\&.UTF\-8\*(Aq
+
.fi
.if n \{\
.RE
@@ -4960,23 +4993,24 @@ barlocalincs = [\*(AqStdAfx\&.h\*(Aq]
barresources = [\*(Aqbar\&.rc\*(Aq,\*(Aqresource\&.h\*(Aq]
barmisc = [\*(Aqbar_readme\&.txt\*(Aq]
-dll = env\&.SharedLibrary(target = \*(Aqbar\&.dll\*(Aq,
- source = barsrcs)
+dll = env\&.SharedLibrary(target=\*(Aqbar\&.dll\*(Aq,
+ source=barsrcs)
buildtarget = [s for s in dll if str(s)\&.endswith(\*(Aqdll\*(Aq)]
-env\&.MSVSProject(target = \*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq],
- srcs = barsrcs,
- incs = barincs,
- localincs = barlocalincs,
- resources = barresources,
- misc = barmisc,
- buildtarget = buildtarget,
- variant = \*(AqRelease\*(Aq)
+env\&.MSVSProject(target=\*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq],
+ srcs=barsrcs,
+ incs=barincs,
+ localincs=barlocalincs,
+ resources=barresources,
+ misc=barmisc,
+ buildtarget=buildtarget,
+ variant=\*(AqRelease\*(Aq)
+
.fi
.if n \{\
.RE
.\}
.sp
-Starting with version 2\&.4 of SCons it\*(Aqs also possible to specify the optional argument
+Starting with version 2\&.4 of SCons it is also possible to specify the optional argument
\fIDebugSettings\fR, which creates files for debugging under Visual Studio:
.PP
DebugSettings
@@ -5009,7 +5043,7 @@ if msvcver == \*(Aq9\*(Aq or msvcver == \*(Aq11\*(Aq:
env = Environment(MSVC_VERSION=msvcver+\*(Aq\&.0\*(Aq, MSVC_BATCH=False)
else:
env = Environment()
-
+
AddOption(\*(Aq\-\-userfile\*(Aq, action=\*(Aqstore_true\*(Aq, dest=\*(Aquserfile\*(Aq, default=False,
help="Create Visual Studio Project user file")
@@ -5044,10 +5078,10 @@ V9DebugSettings = {
}
#
-# 2\&. Because there are a lot of different options depending on the Microsoft
-# Visual Studio version, if you use more than one version you have to
-# define a dictionary per version, for instance if you want to create a user
-# file to launch a specific application for testing your dll with Microsoft
+# 2\&. Because there are a lot of different options depending on the Microsoft
+# Visual Studio version, if you use more than one version you have to
+# define a dictionary per version, for instance if you want to create a user
+# file to launch a specific application for testing your dll with Microsoft
# Visual Studio 2012 (v11):
#
V10DebugSettings = {
@@ -5079,7 +5113,7 @@ V10DebugSettings = {
}
#
-# 3\&. Select the dictionary you want depending on the version of visual Studio
+# 3\&. Select the dictionary you want depending on the version of visual Studio
# Files you want to generate\&.
#
if not env\&.GetOption(\*(Aquserfile\*(Aq):
@@ -5088,7 +5122,7 @@ elif env\&.get(\*(AqMSVC_VERSION\*(Aq, None) == \*(Aq9\&.0\*(Aq:
dbgSettings = V9DebugSettings
elif env\&.get(\*(AqMSVC_VERSION\*(Aq, None) == \*(Aq11\&.0\*(Aq:
dbgSettings = V10DebugSettings
-else:
+else:
dbgSettings = None
#
@@ -5100,19 +5134,20 @@ barlocalincs = [\*(AqStdAfx\&.h\*(Aq]
barresources = [\*(Aqbar\&.rc\*(Aq,\*(Aqresource\&.h\*(Aq]
barmisc = [\*(AqReadMe\&.txt\*(Aq]
-dll = env\&.SharedLibrary(target = \*(Aqbar\&.dll\*(Aq,
- source = barsrcs)
+dll = env\&.SharedLibrary(target=\*(Aqbar\&.dll\*(Aq,
+ source=barsrcs)
-env\&.MSVSProject(target = \*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq],
- srcs = barsrcs,
- incs = barincs,
- localincs = barlocalincs,
- resources = barresources,
- misc = barmisc,
- buildtarget = [dll[0]] * 2,
- variant = (\*(AqDebug|Win32\*(Aq, \*(AqRelease|Win32\*(Aq),
- cmdargs = \*(Aqvc=%s\*(Aq % msvcver,
- DebugSettings = (dbgSettings, {}))
+env\&.MSVSProject(target=\*(AqBar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq],
+ srcs=barsrcs,
+ incs=barincs,
+ localincs=barlocalincs,
+ resources=barresources,
+ misc=barmisc,
+ buildtarget=[dll[0]] * 2,
+ variant=(\*(AqDebug|Win32\*(Aq, \*(AqRelease|Win32\*(Aq),
+ cmdargs=\*(Aqvc=%s\*(Aq % msvcver,
+ DebugSettings=(dbgSettings, {}))
+
.fi
.if n \{\
.RE
@@ -5158,8 +5193,8 @@ Example Usage:
.RS 4
.\}
.nf
-env\&.MSVSSolution(target = \*(AqBar\*(Aq + env[\*(AqMSVSSOLUTIONSUFFIX\*(Aq], projects = [\*(Aqbar\*(Aq
-+ env[\*(AqMSVSPROJECTSUFFIX\*(Aq]], variant = \*(AqRelease\*(Aq)
+env\&.MSVSSolution(target=\*(AqBar\*(Aq + env[\*(AqMSVSSOLUTIONSUFFIX\*(Aq], projects=[\*(Aqbar\*(Aq + env[\*(AqMSVSPROJECTSUFFIX\*(Aq]], variant=\*(AqRelease\*(Aq)
+
.fi
.if n \{\
.RE
@@ -5207,7 +5242,7 @@ The target packager may be selected with the "PACKAGETYPE" command line option o
\fB$PACKAGETYPE\fR
construction variable\&. Currently the following packagers available:
.sp
-* msi \- Microsoft Installer * rpm \- Redhat Package Manger * ipkg \- Itsy Package Management System * tarbz2 \- compressed tar * targz \- compressed tar * zip \- zip file * src_tarbz2 \- compressed tar source * src_targz \- compressed tar source * src_zip \- zip file source
+* msi \- Microsoft Installer * rpm \- RPM Package Manger * ipkg \- Itsy Package Management System * tarbz2 \- bzip2 compressed tar * targz \- gzip compressed tar * tarxz \- xz compressed tar * zip \- zip file * src_tarbz2 \- bzip2 compressed tar source * src_targz \- gzip compressed tar source * src_tarxz \- xz compressed tar source * src_zip \- zip file source
.sp
An updated list is always available under the "package_type" option when running "scons \-\-help" on a project that has packaging activated\&.
.sp
@@ -6432,7 +6467,7 @@ Any occurrences of a key in the source are replaced by the corresponding value,
.RS 4
.\}
.nf
-env = Environment(tools = [\*(Aqdefault\*(Aq, \*(Aqtextfile\*(Aq])
+env = Environment(tools=[\*(Aqdefault\*(Aq])
env[\*(Aqprefix\*(Aq] = \*(Aq/usr/bin\*(Aq
script_dict = {\*(Aq@prefix@\*(Aq: \*(Aq/bin\*(Aq, \*(Aq@exec_prefix@\*(Aq: \*(Aq$prefix\*(Aq}
@@ -6459,7 +6494,7 @@ env\&.Substfile(\*(Aqbar\&.in\*(Aq, SUBST_DICT = good_bar)
# the SUBST_DICT may be in common (and not an override)
substutions = {}
-subst = Environment(tools = [\*(Aqtextfile\*(Aq], SUBST_DICT = substitutions)
+subst = Environment(tools=[\*(Aqtextfile\*(Aq], SUBST_DICT=substitutions)
substitutions[\*(Aq@foo@\*(Aq] = \*(Aqfoo\*(Aq
subst[\*(AqSUBST_DICT\*(Aq][\*(Aq@bar@\*(Aq] = \*(Aqbar\*(Aq
subst\&.Substfile(\*(Aqpgm1\&.c\*(Aq, [Value(\*(Aq#include "@foo@\&.h"\*(Aq),
@@ -7708,7 +7743,7 @@ This specifies a list of default targets, which will be built by
scons
if no explicit targets are given on the command line\&. Multiple calls to
\fBDefault\fR
-are legal, and add to the list of default targets\&.
+are legal, and add to the list of default targets\&. As noted above, both forms of this call affect the same global list of default targets; the construction environment method applies construction variable expansion to the targets\&.
.sp
Multiple targets should be specified as separate arguments to the
\fBDefault\fR
@@ -9238,7 +9273,7 @@ Creates a Scanner object for the specified
\fIfunction\fR\&. See the section "Scanner Objects," below, for a complete explanation of the arguments and behavior\&.
.RE
.PP
-SConscript(scripts, [exports, variant_dir, duplicate]), env\&.SConscript(scripts, [exports, variant_dir, duplicate]), SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate]), env\&.SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate])
+SConscript(scripts, [exports, variant_dir, duplicate, must_exist]), env\&.SConscript(scripts, [exports, variant_dir, duplicate, must_exist]), SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate, must_exist]), env\&.SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate, must_exist])
.RS 4
This tells
scons
@@ -9401,6 +9436,14 @@ SConscript(\*(Aqbuild/SConscript\*(Aq)
.sp
.sp
+The optional
+\fImust_exist\fR
+argument, if true, causes an exception to be raised if a requested
+SConscript
+file is not found\&. The current default is false, causing only a warning to be omitted, but this behavior is deprecated\&. For scripts which truly intend to be optional, transition to explicty supplying
+must_exist=False
+to the call\&.
+.sp
Here are some composite examples:
.sp
.if n \{\
@@ -10352,7 +10395,7 @@ Example:
.\}
.nf
print(str(DEFAULT_TARGETS[0]))
-if \*(Aqfoo\*(Aq in map(str, DEFAULT_TARGETS):
+if \*(Aqfoo\*(Aq in [str(t) for t in DEFAULT_TARGETS]:
print("Don\*(Aqt forget to test the `foo\*(Aq program!")
.fi
.if n \{\
@@ -10369,13 +10412,13 @@ list change on on each successive call to the
.RS 4
.\}
.nf
-print(map(str, DEFAULT_TARGETS)) # originally []
+print([str(t) for t in DEFAULT_TARGETS]) # originally []
Default(\*(Aqfoo\*(Aq)
-print(map(str, DEFAULT_TARGETS)) # now a node [\*(Aqfoo\*(Aq]
+print([str(t) for t in DEFAULT_TARGETS]) # now a node [\*(Aqfoo\*(Aq]
Default(\*(Aqbar\*(Aq)
-print(map(str, DEFAULT_TARGETS)) # now a node [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq]
+print([str(t) for t in DEFAULT_TARGETS]) # now a node [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq]
Default(None)
-print(map(str, DEFAULT_TARGETS)) # back to []
+print([str(t) for t in DEFAULT_TARGETS]) # back to []
.fi
.if n \{\
.RE
@@ -10411,6 +10454,74 @@ if
is set\&. Othervise it evaluates to an empty string\&.
.RE
.PP
+_APPLELINK_COMPATIBILITY_VERSION
+.RS 4
+A macro (by default a generator function) used to create the linker flags to specify apple\*(Aqs linker\*(Aqs \-compatibility_version flag\&. The default generator uses
+\fB$APPLELINK_COMPATIBILITY_VERSION\fR
+and
+\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR
+and
+\fB$SHLIBVERSION\fR
+to determine the correct flag\&.
+.RE
+.PP
+APPLELINK_COMPATIBILITY_VERSION
+.RS 4
+On Mac OS X this is used to set the linker flag: \-compatibility_version
+.sp
+The value is specified as X[\&.Y[\&.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and 255, Z can be omitted or between 1 and 255\&. This value will be derived from
+\fB$SHLIBVERSION\fR
+if not specified\&. The lowest digit will be dropped and replaced by a 0\&.
+.sp
+If the
+\fB$APPLELINK_NO_COMPATIBILITY_VERSION\fR
+is set then no \-compatibility_version will be output\&.
+.sp
+See MacOS\*(Aqs ld manpage for more details
+.RE
+.PP
+_APPLELINK_CURRENT_VERSION
+.RS 4
+A macro (by default a generator function) used to create the linker flags to specify apple\*(Aqs linker\*(Aqs \-current_version flag\&. The default generator uses
+\fB$APPLELINK_CURRENT_VERSION\fR
+and
+\fB$APPLELINK_NO_CURRENT_VERSION\fR
+and
+\fB$SHLIBVERSION\fR
+to determine the correct flag\&.
+.RE
+.PP
+APPLELINK_CURRENT_VERSION
+.RS 4
+On Mac OS X this is used to set the linker flag: \-current_version
+.sp
+The value is specified as X[\&.Y[\&.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and 255, Z can be omitted or between 1 and 255\&. This value will be set to
+\fB$SHLIBVERSION\fR
+if not specified\&.
+.sp
+If the
+\fB$APPLELINK_NO_CURRENT_VERSION\fR
+is set then no \-current_version will be output\&.
+.sp
+See MacOS\*(Aqs ld manpage for more details
+.RE
+.PP
+APPLELINK_NO_COMPATIBILITY_VERSION
+.RS 4
+Set this to any True (1|True|non\-empty string) value to disable adding \-compatibility_version flag when generating versioned shared libraries\&.
+.sp
+This overrides
+\fB$APPLELINK_COMPATIBILITY_VERSION\fR\&.
+.RE
+.PP
+APPLELINK_NO_CURRENT_VERSION
+.RS 4
+Set this to any True (1|True|non\-empty string) value to disable adding \-current_version flag when generating versioned shared libraries\&.
+.sp
+This overrides
+\fB$APPLELINK_CURRENT_VERSION\fR\&.
+.RE
+.PP
AR
.RS 4
The static library archiver\&.
@@ -10422,7 +10533,11 @@ Specifies the system architecture for which the package is being built\&. The de
Architecture:
field in an Ipkg
control
-file, and as part of the name of a generated RPM file\&.
+file, and the
+BuildArch:
+field in the RPM
+\&.spec
+file, as well as forming part of the name of a generated RPM package file\&.
.RE
.PP
ARCOM
@@ -10582,7 +10697,7 @@ or this:
.\}
.nf
env = Environment()
-env[\*(AqBUILDERS][\*(AqNewBuilder\*(Aq] = foo
+env[\*(AqBUILDERS\*(Aq][\*(AqNewBuilder\*(Aq] = foo
.fi
.if n \{\
.RE
@@ -10706,7 +10821,7 @@ for RPM, the
control
for Ipkg, the
\&.wxs
-for MSI)\&. If set, the function will be called after the SCons template for the file has been written\&. XXX
+for MSI)\&. If set, the function will be called after the SCons template for the file has been written\&.
.RE
.PP
CHANGED_SOURCES
@@ -10766,7 +10881,7 @@ _CPPDEFFLAGS
.RS 4
An automatically\-generated construction variable containing the C preprocessor command\-line options to define values\&. The value of
\fB$_CPPDEFFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$CPPDEFPREFIX\fR
and
\fB$CPPDEFSUFFIX\fR
@@ -10787,7 +10902,8 @@ is a string, the values of the
\fB$CPPDEFPREFIX\fR
and
\fB$CPPDEFSUFFIX\fR
-construction variables will be added to the beginning and end\&.
+construction variables will be respectively prepended and appended to the beginning and end of each definition in
+\fB$CPPDEFINES\fR\&.
.sp
.if n \{\
.RS 4
@@ -10807,7 +10923,7 @@ is a list, the values of the
\fB$CPPDEFPREFIX\fR
and
\fB$CPPDEFSUFFIX\fR
-construction variables will be appended to the beginning and end of each element in the list\&. If any element is a list or tuple, then the first item is the name being defined and the second item is its value:
+construction variables will be respectively prepended and appended to the beginning and end of each element in the list\&. If any element is a list or tuple, then the first item is the name being defined and the second item is its value:
.sp
.if n \{\
.RS 4
@@ -10827,7 +10943,7 @@ is a dictionary, the values of the
\fB$CPPDEFPREFIX\fR
and
\fB$CPPDEFSUFFIX\fR
-construction variables will be appended to the beginning and end of each item from the dictionary\&. The key of each dictionary item is a name being defined to the dictionary item\*(Aqs corresponding value; if the value is
+construction variables will be respectively prepended and appended to the beginning and end of each item from the dictionary\&. The key of each dictionary item is a name being defined to the dictionary item\*(Aqs corresponding value; if the value is
None, then the name is defined without an explicit value\&. Note that the resulting flags are sorted by keyword to ensure that the order of the options on the command line is consistent each time
scons
is run\&.
@@ -10847,7 +10963,7 @@ env = Environment(CPPDEFINES={\*(AqB\*(Aq:2, \*(AqA\*(Aq:None})
.PP
CPPDEFPREFIX
.RS 4
-The prefix used to specify preprocessor definitions on the C compiler command line\&. This will be appended to the beginning of each definition in the
+The prefix used to specify preprocessor definitions on the C compiler command line\&. This will be prepended to the beginning of each definition in the
\fB$CPPDEFINES\fR
construction variable when the
\fB$_CPPDEFFLAGS\fR
@@ -10892,7 +11008,7 @@ _CPPINCFLAGS
.RS 4
An automatically\-generated construction variable containing the C preprocessor command\-line options for specifying directories to be searched for include files\&. The value of
\fB$_CPPINCFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$INCPREFIX\fR
and
\fB$INCSUFFIX\fR
@@ -10932,7 +11048,7 @@ env = Environment(CPPPATH=include)
.sp
The directory list will be added to command lines through the automatically\-generated
\fB$_CPPINCFLAGS\fR
-construction variable, which is constructed by appending the values of the
+construction variable, which is constructed by respectively prepending and appending the value of the
\fB$INCPREFIX\fR
and
\fB$INCSUFFIX\fR
@@ -12366,7 +12482,7 @@ _FORTRANINCFLAGS
.RS 4
An automatically\-generated construction variable containing the Fortran compiler command\-line options for specifying directories to be searched for include files and module files\&. The value of
\fB$_FORTRANINCFLAGS\fR
-is created by prepending/appending
+is created by respectively prepending and appending
\fB$INCPREFIX\fR
and
\fB$INCSUFFIX\fR
@@ -12381,7 +12497,7 @@ Directory location where the Fortran compiler should place any module files it g
.PP
FORTRANMODDIRPREFIX
.RS 4
-The prefix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the beginning of the directory in the
+The prefix used to specify a module directory on the Fortran compiler command line\&. This will be prepended to the beginning of the directory in the
\fB$FORTRANMODDIR\fR
construction variables when the
\fB$_FORTRANMODFLAG\fR
@@ -12390,7 +12506,7 @@ variables is automatically generated\&.
.PP
FORTRANMODDIRSUFFIX
.RS 4
-The suffix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the beginning of the directory in the
+The suffix used to specify a module directory on the Fortran compiler command line\&. This will be appended to the end of the directory in the
\fB$FORTRANMODDIR\fR
construction variables when the
\fB$_FORTRANMODFLAG\fR
@@ -12401,7 +12517,7 @@ _FORTRANMODFLAG
.RS 4
An automatically\-generated construction variable containing the Fortran compiler command\-line option for specifying the directory location where the Fortran compiler should place any module files that happen to get generated during compilation\&. The value of
\fB$_FORTRANMODFLAG\fR
-is created by prepending/appending
+is created by respectively prepending and appending
\fB$FORTRANMODDIRPREFIX\fR
and
\fB$FORTRANMODDIRSUFFIX\fR
@@ -12453,7 +12569,7 @@ env = Environment(FORTRANPATH=include)
.sp
The directory list will be added to command lines through the automatically\-generated
\fB$_FORTRANINCFLAGS\fR
-construction variable, which is constructed by appending the values of the
+construction variable, which is constructed by respectively prepending and appending the values of the
\fB$INCPREFIX\fR
and
\fB$INCSUFFIX\fR
@@ -12520,7 +12636,8 @@ On Mac OS X with gcc, a list containing the paths to search for frameworks\&. Us
.RS 4
.\}
.nf
- env\&.AppendUnique(FRAMEWORKPATH=\*(Aq#myframeworkdir\*(Aq)
+ env\&.AppendUnique(FRAMEWORKPATH=\*(Aq#myframeworkdir\*(Aq)
+
.fi
.if n \{\
.RE
@@ -12532,7 +12649,8 @@ will add
.RS 4
.\}
.nf
- \&.\&.\&. \-Fmyframeworkdir
+ \&.\&.\&. \-Fmyframeworkdir
+
.fi
.if n \{\
.RE
@@ -12574,7 +12692,8 @@ On Mac OS X with gcc, a list of the framework names to be linked into a program
.RS 4
.\}
.nf
- env\&.AppendUnique(FRAMEWORKS=Split(\*(AqSystem Cocoa SystemConfiguration\*(Aq))
+ env\&.AppendUnique(FRAMEWORKS=Split(\*(AqSystem Cocoa SystemConfiguration\*(Aq))
+
.fi
.if n \{\
.RE
@@ -12723,7 +12842,7 @@ env = Environment(IMPLICIT_COMMAND_DEPENDENCIES = 0)
.PP
INCPREFIX
.RS 4
-The prefix used to specify an include directory on the C compiler command line\&. This will be appended to the beginning of each directory in the
+The prefix used to specify an include directory on the C compiler command line\&. This will be prepended to the beginning of each directory in the
\fB$CPPPATH\fR
and
\fB$FORTRANPATH\fR
@@ -12906,7 +13025,8 @@ The string displayed when compiling a directory tree of Java source files to cor
.RS 4
.\}
.nf
-env = Environment(JAVACCOMSTR = "Compiling class files $TARGETS from $SOURCES")
+ env = Environment(JAVACCOMSTR = "Compiling class files $TARGETS from $SOURCES")
+
.fi
.if n \{\
.RE
@@ -12992,6 +13112,11 @@ JAVAHFLAGS
General options passed to the C header and stub file generator for Java classes\&.
.RE
.PP
+JAVAINCLUDES
+.RS 4
+Include path for Java header files (such as jni\&.h)
+.RE
+.PP
JAVASOURCEPATH
.RS 4
Specifies the list of directories that will be searched for input
@@ -13235,11 +13360,16 @@ LEXFLAGS
General options passed to the lexical analyzer generator\&.
.RE
.PP
+LEXUNISTD
+.RS 4
+Used only on windows environments to set a lex flag to prevent \*(Aqunistd\&.h\*(Aq from being included\&. The default value is \*(Aq\-\-nounistd\*(Aq\&.
+.RE
+.PP
_LIBDIRFLAGS
.RS 4
An automatically\-generated construction variable containing the linker command\-line options for specifying directories to be searched for library\&. The value of
\fB$_LIBDIRFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$LIBDIRPREFIX\fR
and
\fB$LIBDIRSUFFIX\fR
@@ -13249,7 +13379,7 @@ to the beginning and end of each directory in
.PP
LIBDIRPREFIX
.RS 4
-The prefix used to specify a library directory on the linker command line\&. This will be appended to the beginning of each directory in the
+The prefix used to specify a library directory on the linker command line\&. This will be prepended to the beginning of each directory in the
\fB$LIBPATH\fR
construction variable when the
\fB$_LIBDIRFLAGS\fR
@@ -13274,7 +13404,7 @@ _LIBFLAGS
.RS 4
An automatically\-generated construction variable containing the linker command\-line options for specifying libraries to be linked with the resulting target\&. The value of
\fB$_LIBFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$LIBLINKPREFIX\fR
and
\fB$LIBLINKSUFFIX\fR
@@ -13284,7 +13414,7 @@ to the beginning and end of each filename in
.PP
LIBLINKPREFIX
.RS 4
-The prefix used to specify a library to link on the linker command line\&. This will be appended to the beginning of each library in the
+The prefix used to specify a library to link on the linker command line\&. This will be prepended to the beginning of each library in the
\fB$LIBS\fR
construction variable when the
\fB$_LIBFLAGS\fR
@@ -13336,7 +13466,7 @@ env = Environment(LIBPATH=libs)
.sp
The directory list will be added to command lines through the automatically\-generated
\fB$_LIBDIRFLAGS\fR
-construction variable, which is constructed by appending the values of the
+construction variable, which is constructed by respectively prepending and appending the values of the
\fB$LIBDIRPREFIX\fR
and
\fB$LIBDIRSUFFIX\fR
@@ -13373,7 +13503,7 @@ A list of one or more libraries that will be linked with any executable programs
.sp
The library list will be added to command lines through the automatically\-generated
\fB$_LIBFLAGS\fR
-construction variable, which is constructed by appending the values of the
+construction variable, which is constructed by respectively prepending and appending the values of the
\fB$LIBLINKPREFIX\fR
and
\fB$LIBLINKSUFFIX\fR
@@ -13426,7 +13556,7 @@ list, the base library name, and these suffixes\&.
.PP
LICENSE
.RS 4
-The abbreviated name of the license under which this project is released (gpl, lpgl, bsd etc\&.)\&. See http://www\&.opensource\&.org/licenses/alphabetical for a list of license names\&.
+The abbreviated name, preferably the SPDX code, of the license under which this project is released (GPL\-3\&.0, LGPL\-2\&.1, BSD\-2\-Clause etc\&.)\&. See http://www\&.opensource\&.org/licenses/alphabetical for a list of license names and SPDX codes\&.
.RE
.PP
LINESEPARATOR
@@ -13795,6 +13925,7 @@ If
is not set, SCons will (by default) select the latest version of Visual C/C++ installed on your system\&. If the specified version isn\*(Aqt installed, tool initialization will fail\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&.
.sp
Valid values for Windows are
+14\&.1,
14\&.0,
14\&.0Exp,
12\&.0,
@@ -13869,7 +14000,7 @@ PLATFORMSDK_MODULES
dictionary of installed Platform SDK modules, where the dictionary keys are keywords for the various modules, and the values are 2\-tuples where the first is the release date, and the second is the version number\&.
.RE
.sp
-If a value isn\*(Aqt set, it wasn\*(Aqt available in the registry\&.
+If a value is not set, it was not available in the registry\&.
.RE
.PP
MSVS_ARCH
@@ -13881,7 +14012,11 @@ x86\&.
amd64
is also supported by
SCons
-for some Visual Studio versions\&. Trying to set
+for most Visual Studio versions\&. Since Visual Studio 2015
+arm
+is supported, and since Visual Studio 2017
+arm64
+is supported\&. Trying to set
\fB$MSVS_ARCH\fR
to an architecture that\*(Aqs not supported for a given Visual Studio version will generate an error\&.
.RE
@@ -14768,7 +14903,7 @@ RCINCFLAGS
.RS 4
An automatically\-generated construction variable containing the command\-line options for specifying directories to be searched by the resource compiler\&. The value of
\fB$RCINCFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$RCINCPREFIX\fR
and
\fB$RCINCSUFFIX\fR
@@ -14778,7 +14913,7 @@ to the beginning and end of each directory in
.PP
RCINCPREFIX
.RS 4
-The prefix (flag) used to specify an include directory on the resource compiler command line\&. This will be appended to the beginning of each directory in the
+The prefix (flag) used to specify an include directory on the resource compiler command line\&. This will be prepended to the beginning of each directory in the
\fB$CPPPATH\fR
construction variable when the
\fB$RCINCFLAGS\fR
@@ -14867,9 +15002,9 @@ _RPATH
.RS 4
An automatically\-generated construction variable containing the rpath flags to be used when linking a program with shared libraries\&. The value of
\fB$_RPATH\fR
-is created by appending
+is created by respectively prepending
\fB$RPATHPREFIX\fR
-and
+and appending
\fB$RPATHSUFFIX\fR
to the beginning and end of each directory in
\fB$RPATH\fR\&.
@@ -14884,7 +15019,7 @@ in any way: if you want an absolute path, you must make it absolute yourself\&.
.PP
RPATHPREFIX
.RS 4
-The prefix used to specify a directory to be searched for shared libraries when running programs\&. This will be appended to the beginning of each directory in the
+The prefix used to specify a directory to be searched for shared libraries when running programs\&. This will be prepended to the beginning of each directory in the
\fB$RPATH\fR
construction variable when the
\fB$_RPATH\fR
@@ -15708,7 +15843,7 @@ _SWIGINCFLAGS
.RS 4
An automatically\-generated construction variable containing the SWIG command\-line options for specifying directories to be searched for included files\&. The value of
\fB$_SWIGINCFLAGS\fR
-is created by appending
+is created by respectively prepending and appending
\fB$SWIGINCPREFIX\fR
and
\fB$SWIGINCSUFFIX\fR
@@ -15718,7 +15853,7 @@ to the beginning and end of each directory in
.PP
SWIGINCPREFIX
.RS 4
-The prefix used to specify an include directory on the SWIG command line\&. This will be appended to the beginning of each directory in the
+The prefix used to specify an include directory on the SWIG command line\&. This will be prepended to the beginning of each directory in the
\fB$SWIGPATH\fR
construction variable when the
\fB$_SWIGINCFLAGS\fR
@@ -15777,7 +15912,7 @@ env = Environment(SWIGPATH=include)
.sp
The directory list will be added to command lines through the automatically\-generated
\fB$_SWIGINCFLAGS\fR
-construction variable, which is constructed by appending the values of the
+construction variable, which is constructed by respectively prepending and appending the values of the
\fB$SWIGINCPREFIX\fR
and
\fB$SWIGINCSUFFIX\fR
@@ -15843,13 +15978,15 @@ TARGET_ARCH
The name of the target hardware architecture for the compiled objects created by this Environment\&. This defaults to the value of HOST_ARCH, and the user can override it\&. Currently only set for Win32\&.
.sp
Sets the target architecture for Visual Studio compiler (i\&.e\&. the arch of the binaries generated by the compiler)\&. If not set, default to
-\fB$HOST_ARCH\fR, or, if that is unset, to the architecture of the running machine\*(Aqs OS (note that the python build or architecture has no effect)\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&. This is currently only used on Windows, but in the future it will be used on other OSes as well\&.
+\fB$HOST_ARCH\fR, or, if that is unset, to the architecture of the running machine\*(Aqs OS (note that the python build or architecture has no effect)\&. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect\&. This is currently only used on Windows, but in the future it will be used on other OSes as well\&. If this is set and MSVC_VERSION is not set, this will search for all installed MSVC\*(Aqs that support the TARGET_ARCH, selecting the latest version for use\&.
.sp
Valid values for Windows are
x86,
+arm,
i386
(for 32 bits);
amd64,
+arm64,
emt64,
x86_64
(for 64 bits); and
@@ -15876,7 +16013,12 @@ The suffix used for tar file names\&.
.PP
TEMPFILEPREFIX
.RS 4
-The prefix for a temporary file used to execute lines longer than $MAXLINELENGTH\&. The default is \*(Aq@\*(Aq\&. This may be set for toolchains that use other values, such as \*(Aq\-@\*(Aq for the diab compiler or \*(Aq\-via\*(Aq for ARM toolchain\&.
+The prefix for a temporary file used to store lines lines longer than $MAXLINELENGTH as operations which call out to a shell will fail if the line is too long, which particularly impacts linking\&. The default is \*(Aq@\*(Aq, which works for the Microsoft and GNU toolchains on Windows\&. Set this appropriately for other toolchains, for example \*(Aq\-@\*(Aq for the diab compiler or \*(Aq\-via\*(Aq for ARM toolchain\&.
+.RE
+.PP
+TEMPFILESUFFIX
+.RS 4
+The suffix used for the temporary file name used for long command lines\&. The name should include the dot (\*(Aq\&.\*(Aq) if one is wanted as it will not be added automatically\&. The default is \*(Aq\&.lnk\*(Aq\&.
.RE
.PP
TEX
@@ -16152,7 +16294,7 @@ This is used to fill in the
BuildRequires:
field in the RPM
\&.spec
-file\&.
+file\&. Note this should only be used on a host managed by rpm as the dependencies will not be resolvable at build time otherwise\&.
.RE
.PP
X_RPM_BUILDROOT
@@ -16193,7 +16335,9 @@ X_RPM_EPOCH
.RS 4
This is used to fill in the
Epoch:
-field in the controlling information for RPM packages\&.
+field in the RPM
+\&.spec
+file\&.
.RE
.PP
X_RPM_EXCLUDEARCH
@@ -16214,6 +16358,32 @@ field in the RPM
file\&.
.RE
.PP
+X_RPM_EXTRADEFS
+.RS 4
+A list used to supply extra defintions or flags to be added to the RPM
+\&.spec
+file\&. Each item is added as\-is with a carriage return appended\&. This is useful if some specific RPM feature not otherwise anticipated by SCons needs to be turned on or off\&. Note if this variable is omitted, SCons will by default supply the value
+\*(Aq%global debug_package %{nil}\*(Aq
+to disable debug package generation\&. To enable debug package generation, include this variable set either to None, or to a custom list that does not include the default line\&. Added in version 3\&.1\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+env\&.Package(
+ NAME = \*(Aqfoo\*(Aq,
+\&.\&.\&.
+ X_RPM_EXTRADEFS = [
+ \*(Aq%define _unpackaged_files_terminate_build 0\*(Aq
+ \*(Aq%define _missing_doc_files_terminate_build 0\*(Aq
+ ],
+\&.\&.\&. )
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
X_RPM_GROUP
.RS 4
This is used to fill in the
@@ -18211,14 +18381,16 @@ If the first argument is a Python function, a function Action is returned\&. The
\fBtarget\fR
and
\fBsource\fR
-arguments may be lists of Node objects if there is more than one target file or source file\&. The actual target and source file name(s) may be retrieved from their Node objects via the built\-in Python str() function:
+arguments may be lists of Node objects if there is more than one target file or source file\&. The actual target and source file name(s) may be retrieved from their Node objects via the built\-in Python
+\fBstr\fR
+function:
.sp
.if n \{\
.RS 4
.\}
.nf
target_file_name = str(target)
-source_file_names = map(lambda x: str(x), source)
+source_file_names = [str(x) for x in source]
.fi
.if n \{\
.RE
@@ -19784,5 +19956,5 @@ Author.
\fBSteven Knight and the SCons Development Team\fR
.SH "COPYRIGHT"
.br
-Copyright \(co 2004 - 2016 The SCons Foundation
+Copyright \(co 2004 - 2019 The SCons Foundation
.br