%scons; %builders-mod; %functions-mod; %tools-mod; %variables-mod; ]> Sets construction variables for generic POSIX linkers. This is a "smart" linker tool which selects a compiler to complete the linking based on the types of source files. LINK LINKFLAGS LINKCOM LIBDIRPREFIX LIBDIRSUFFIX LIBLINKPREFIX LIBLINKSUFFIX SHLINK SHLINKFLAGS SHLINKCOM SHLIBSUFFIX __SHLIBVERSIONFLAGS LDMODULE LDMODULEPREFIX LDMODULESUFFIX LDMODULEFLAGS LDMODULECOM LDMODULEVERSION LDMODULENOVERSIONSYMLINKS LDMODULEVERSIONFLAGS __LDMODULEVERSIONFLAGS LINKCOMSTR SHLINKCOMSTR LDMODULECOMSTR This construction variable automatically introduces &cv-link-_LDMODULEVERSIONFLAGS; if &cv-link-LDMODULEVERSION; is set. Othervise it evaluates to an empty string. This construction variable automatically introduces &cv-link-_SHLIBVERSIONFLAGS; if &cv-link-SHLIBVERSION; is set. Othervise it evaluates to an empty string. A macro that automatically generates loadable module's SONAME based on $TARGET, $LDMODULEVERSION and $LDMODULESUFFIX. Used by &b-link-LoadableModule; builder when the linker tool supports SONAME (e.g. &t-link-gnulink;). This macro automatically introduces extra flags to &cv-link-LDMODULECOM; when building versioned &b-link-LoadableModule; (that is when &cv-link-LDMODULEVERSION; is set). _LDMODULEVERSIONFLAGS usually adds &cv-link-SHLIBVERSIONFLAGS; and some extra dynamically generated options (such as -Wl,-soname=$_LDMODULESONAME). It is unused by plain (unversioned) loadable modules. This macro automatically introduces extra flags to &cv-link-SHLINKCOM; when building versioned &b-link-SharedLibrary; (that is when &cv-link-SHLIBVERSION; is set). _SHLIBVERSIONFLAGS usually adds &cv-link-SHLIBVERSIONFLAGS; and some extra dynamically generated options (such as -Wl,-soname=$_SHLIBSONAME. It is unused by "plain" (unversioned) shared libraries. A macro that automatically generates shared library's SONAME based on $TARGET, $SHLIBVERSION and $SHLIBSUFFIX. Used by &b-link-SharedLibrary; builder when the linker tool supports SONAME (e.g. &t-link-gnulink;). The prefix used for import library names. For example, cygwin uses import libraries (libfoo.dll.a) in pair with dynamic libraries (cygfoo.dll). The &t-link-cyglink; linker sets &cv-link-IMPLIBPREFIX; to 'lib' and &cv-link-SHLIBPREFIX; to 'cyg'. The suffix used for import library names. For example, cygwin uses import libraries (libfoo.dll.a) in pair with dynamic libraries (cygfoo.dll). The &t-link-cyglink; linker sets &cv-link-IMPLIBSUFFIX; to '.dll.a' and &cv-link-SHLIBSUFFIX; to '.dll'. Used to override &cv-link-SHLIBNOVERSIONSYMLINKS;/&cv-link-LDMODULENOVERSIONSYMLINKS; when creating versioned import library for a shared library/loadable module. If not defined, then &cv-link-SHLIBNOVERSIONSYMLINKS;/&cv-link-LDMODULENOVERSIONSYMLINKS; is used to determine whether to disable symlink generation or not. The linker for building loadable modules. By default, this is the same as &cv-link-SHLINK;. The command line for building loadable modules. On Mac OS X, this uses the &cv-link-LDMODULE;, &cv-link-LDMODULEFLAGS; and &cv-link-FRAMEWORKSFLAGS; variables. On other systems, this is the same as &cv-link-SHLINK;. If set, the string displayed when building loadable modules. If not set, then &cv-link-LDMODULECOM; (the command line) is displayed. General user options passed to the linker for building loadable modules. Instructs the &b-link-LoadableModule; builder to not automatically create symlinks for versioned modules. Defaults to $SHLIBNOVERSIONSYMLINKS The prefix used for loadable module file names. On Mac OS X, this is null; on other systems, this is the same as &cv-link-SHLIBPREFIX;. The suffix used for loadable module file names. On Mac OS X, this is null; on other systems, this is the same as $SHLIBSUFFIX. Extra flags added to &cv-link-LDMODULECOM; when building versioned &b-link-LoadableModule;. These flags are only used when &cv-link-LDMODULEVERSION; is set. The linker. See also &cv-link-SHLINK; for linking shared objects. On POSIX systems (those using the &t-link-link; tool), you should normally not change this value as it defaults to a "smart" linker tool which selects a compiler driver matching the type of source files in use. So for example, if you set &cv-link-CXX; to a specific compiler name, and are compiling C++ sources, the smartlink function will automatically select the same compiler for linking. The command line used to link object files into an executable. See also &cv-link-SHLINKCOM; for linking shared objects. If set, the string displayed when object files are linked into an executable. If not set, then &cv-link-LINKCOM; (the command line) is displayed. See also &cv-link-SHLINKCOMSTR;. for linking shared objects. env = Environment(LINKCOMSTR = "Linking $TARGET") General user options passed to the linker. Note that this variable should not contain (or similar) options for linking with the libraries listed in &cv-link-LIBS;, nor (or similar) library search path options that scons generates automatically from &cv-link-LIBPATH;. See &cv-link-_LIBFLAGS; above, for the variable that expands to library-link options, and &cv-link-_LIBDIRFLAGS; above, for the variable that expands to library search path options. See also &cv-link-SHLINKFLAGS;. for linking shared objects. Instructs the &b-link-SharedLibrary; builder to not create symlinks for versioned shared libraries. Extra flags added to &cv-link-SHLINKCOM; when building versioned &b-link-SharedLibrary;. These flags are only used when &cv-link-SHLIBVERSION; is set. The linker for programs that use shared libraries. See also &cv-link-LINK; for linking static objects. On POSIX systems (those using the &t-link-link; tool), you should normally not change this value as it defaults to a "smart" linker tool which selects a compiler driver matching the type of source files in use. So for example, if you set &cv-link-SHCXX; to a specific compiler name, and are compiling C++ sources, the smartlink function will automatically select the same compiler for linking. The command line used to link programs using shared libraries. See also &cv-link-LINKCOM; for linking static objects. The string displayed when programs using shared libraries are linked. If this is not set, then &cv-link-SHLINKCOM; (the command line) is displayed. See also &cv-link-LINKCOMSTR; for linking static objects. env = Environment(SHLINKCOMSTR = "Linking shared $TARGET") General user options passed to the linker for programs using shared libraries. Note that this variable should not contain (or similar) options for linking with the libraries listed in &cv-link-LIBS;, nor (or similar) include search path options that scons generates automatically from &cv-link-LIBPATH;. See &cv-link-_LIBFLAGS; above, for the variable that expands to library-link options, and &cv-link-_LIBDIRFLAGS; above, for the variable that expands to library search path options. See also &cv-link-LINKFLAGS; for linking static objects. Variable used to hard-code SONAME for versioned shared library/loadable module. env.SharedLibrary('test', 'test.c', SHLIBVERSION='0.1.2', SONAME='libtest.so.2') The variable is used, for example, by &t-link-gnulink; linker tool. This will construct the SONAME using on the base library name (test in the example below) and use specified SOVERSION to create SONAME. env.SharedLibrary('test', 'test.c', SHLIBVERSION='0.1.2', SOVERSION='2') The variable is used, for example, by &t-link-gnulink; linker tool. In the example above SONAME would be libtest.so.2 which would be a symlink and point to libtest.so.0.1.2 When this variable is true, static objects and shared objects are assumed to be the same; that is, SCons does not check for linking static objects into a shared library.