# SCons User Guide &buildversion;

## Preface

&preface;

## Building and Installing &SCons;

&build-install;

## Simple Builds

&simple;

## Less Simple Things to Do With Builds

&less-simple;

## Building and Linking with Libraries

&libraries;

## Node Objects

&nodes;

## Dependencies

&depends;

## Environments

&environments;

## Automatically Putting Command-line Options into their Construction Variables

This chapter describes the &MergeFlags;, &ParseFlags;, and &ParseConfig; methods of a &consenv;.

### Merging Options into the Environment: the &MergeFlags; Function

&mergeflags;

### Separating Compile Arguments into their Variables: the &ParseFlags; Function

&parseflags;

### Finding Installed Library Information: the &ParseConfig; Function

&parseconfig;

## Controlling Build Output

&output;

## Controlling a Build From the Command Line

&command-line;

## Installing Files in Other Directories: the &Install; Builder

&install;

## Platform-Independent File System Manipulation

&factories;

## Controlling Removal of Targets

&file-removal;

## Hierarchical Builds

&hierarchy;

## Separating Source and Build Directories

&separate;

## Variant Builds

&variants;

## Internationalization and localization with gettext

&gettext;

## Writing Your Own Builders

&builders-writing;

## Not Writing a Builder: the &Command; Builder

&builders-commands;

## Pseudo-Builders: the AddMethod function

&add-method;

## Writing Scanners

&scanners;

## Building From Code Repositories

&repositories;

## Multi-Platform Configuration (&Autoconf; Functionality)

&sconf;

## Caching Built Files

&caching;

## Alias Targets

&alias;

## Java Builds

&java;

## Miscellaneous Functionality

&misc;

## Troubleshooting

&troubleshoot;

## Construction Variables

&variables-xml;

## Builders

&builders;

## Tools

&tools;

## Functions and Environment Methods

&functions;

## Handling Common Tasks

&tasks;