diff options
Diffstat (limited to 'scons.1')
| -rw-r--r-- | scons.1 | 426 | 
1 files changed, 299 insertions, 127 deletions
@@ -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  | 
