
                 SCons - a software construction tool

This is the scons-README file for a version of SCons packaged for local
execution--that is, execution out of a specific local directory, without
having to install SCons as a system-wide utility.

You are likely reading this file in one of the following two situations:

    1)  You have unpacked an scons-local-{version} package and are
        examining the contents.

        In this case, you are presumably interested in using this
        package to include a local copy of SCons with some other
        software that you package, so that you can use SCons to build
        your software without forcing all of your users to have it fully
        installed.  Instructions for this can be found below.

        If you are not looking to use SCons in this way, then please
        use either the scons-{version} package to install SCons on your
        system, or the scons-src-{version} package if you want the full
        source to SCons, including its packaging code and underlying
        tests and testing infrastructure.

    2)  This file was included in some other software package so that
        the package could be built using SCons.

        In this case, follow the instructions provided with the
        rest of the software package for how to use SCons to build
        and/or install the software.  The file containing build and
        installation instructions will typically be named README or
        INSTALL.

LATEST VERSION
==============

Before going further, you can check for the latest version of the
scons-local package, or any SCons package, at the SCons download page:

        https://scons.org/pages/download.html


EXECUTION REQUIREMENTS
======================

Running SCons requires Python 3.7 or higher. There should be no other
dependencies or requirements to run standard SCons.

The last release to support Python 3.6 was 4.8.1.
The last release to support Python 3.5 was 4.2.0.

The default SCons configuration assumes use of the Microsoft Visual C++
compiler suite on WIN32 systems (either through the Visual Studio
product, or through the separate Build Tools), and assumes a C compiler
named 'cc', a C++ compiler named 'c++', and a Fortran compiler named 'g77'
(such as found in the GNU Compiler Collection) on any other type of system.
You may, of course, override these default values by appropriate
configuration of Environment construction variables.


INSTALLATION
============

Installation of this package should be as simple as unpacking the
archive (either .tar.gz or .zip) in any directory (top-level or a
subdirectory) within the software package with which you want to ship
SCons.

Once you have installed this package, you should write an SConstruct
file at the top level of your source tree to build your software as you
see fit.

Then modify the build/install instructions for your package to instruct
your users to execute SCons as follows (if you installed this package in
your top-level directory):

        $ python scons.py

Or (if, for example, you installed this package in a subdirectory named
"scons"):

        $ python scons/scons.py

That should be all you have to do.  (If it isn't that simple, please let
us know!)

Since 4.5, there is also an alternate form of scons-local avaialble:
a zipapp. This is a single file with a .pyz suffix, which can be
downloaded and executed directly (e.g.: python scons-local-4.5.2.pyz)
without unpacking. This may be more convenient in a few cases.


CONTENTS OF THIS PACKAGE
========================

This scons-local package consists of the following:

scons-LICENSE
        A copy of the copyright and terms under which SCons is
        distributed (the Open Source Initiative-approved MIT license).

        A disclaimer has been added to the beginning to make clear that
        this license applies only to SCons, and not to any separate
        software you've written with which you're planning to package
        SCons.

scons-README
        What you're looking at right now.

scons-local-{version}/
        The SCons build engine.  This is structured as a Python
        library.

scons.py
        The SCons script itself.  The script sets up the Python
        sys.path variable to use the build engine found in the
        scons-local-{version}/ directory in preference to any other
        SCons build engine installed on your system.


DOCUMENTATION
=============

Because this package is intended to be included with other software by
experienced users, we have not included any SCons documentation in this
package (other than this scons-README file you're reading right now).

If, however, you need documentation about SCons, then consult any of the
following from the corresponding scons-{version} or scons-src-{version}
package:

        The RELEASE.txt file (src/RELEASE.txt file in the
        scons-src-{version} package), which contains notes about this
        specific release, including known problems.

        The CHANGES.txt file (src/CHANGES.txt file in the
        scons-src-{version} package), which contains a list of changes
        since the previous release.

        The scons.1 man page (doc/man/scons.1 in the scons-src-{version}
        package), which contains a section of small examples for getting
        started using SCons.

Additional documentation for SCons is available at:

        https://www.scons.org/doc.html


LICENSING
=========

SCons is distributed under the MIT license, a full copy of which is
available in the scons-LICENSE file in this package. The MIT license is
an approved Open Source license, which means:

        This software is OSI Certified Open Source Software.  OSI
        Certified is a certification mark of the Open Source Initiative.

More information about OSI certifications and Open Source software is
available at:

        https://www.opensource.org


REPORTING BUGS
==============

The SCons project welcomes bug reports and feature requests.

Please make sure you send email with the problem or feature request to
the SCons users mailing list, which you can join via the link below:

        https://mail.python.org/mailman3/lists/scons-users.python.org

Once you have discussed your issue on the users mailing list and the
community has confirmed that it is either a new bug or a duplicate of an
existing bug, then please follow the instructions the community provides
to file a new bug or to add yourself to the CC list for an existing bug

You can explore the list of existing bugs, which may include workarounds
for the problem you've run into, on GitHub:

        https://github.com/SCons/scons/issues



MAILING LISTS
=============

A mailing list for users of SCons is available.  You may send questions
or comments to the list at:

        scons-users@python.org

You may subscribe to the scons-users mailing list at:

        https://mail.python.org/mailman3/lists/scons-users.python.org

In addition to the scons-users list which is appropriate for almost any
question, there is a mailing list specifically for developers of SCons
You may send questions or comments to the list at:

        scons-dev@python.org

You may subscribe to the developer's mailing list using form on this page:

        https://mail.python.org/mailman3/lists/scons-dev.python.org

Subscription to the developer's mailing list is by approval.  In practice, no
one is refused list membership, but we reserve the right to limit membership
in the future and/or weed out lurkers.

Note that while this list still exists, the number of different places you
can talk about SCons means it is no longer very active.  GitHub has
support for discussions as well as for issues, and there is usually more
immediacy on the Discord chat, so these are probably now considered the
preferred places for "development" topics.


FOR MORE INFORMATION
====================

Check the SCons web site at:

        https://scons.org


Author Info
===========

SCons was originally written by Steven Knight, knight at baldmt dot com.
Since around 2010 it has been maintained by the SCons
development team, co-managed by Bill Deegan and Gary Oberbrunner, with
many contributors, including but not at all limited to:

- Chad Austin
- Dirk Baechle
- Charles Crain
- William Deegan
- Steve Leblanc
- Rob Managan
- Greg Noel
- Gary Oberbrunner
- Anthony Roach
- Greg Spencer
- Tom Tanner
- Anatoly Techtonik
- Christoph Wiedemann
- Mats Wichmann
- Russel Winder
- Mats Wichmann

\... and many others.
