###  | # Boost.Build ## variables

## Introduction

Boost.Build's behaviour can be controlled by setting of variables either from the shell environment or using the "`-sVARIABLE_NAME=` value" Jam command line option. Most of these variables are used internally and don't need to be manipulated by the user.

## Variables

Variable Name | Semantics | Notes
--- | --- | ---
`AS` | Command to compile assermbler source files. |
`ASFLAGS` | Flags to pass to As command. |
`AWK` | Command to process awk commands. |
`CHMOD` | Command to set the permissions of files. |
`CP` | Command used to copy files. |
`CRELIB` | ? |
`DLLMODE` | Permissions to set for generated shared library files. |
`DLL_AS_LIB` | Platform flag indicating that when linking the platform treats shared libraries as link libraries when linking. Notably Win32 type platforms. |
`DOT` | Representation of current directory in a path. |
`DOTDOT` | Represetation of parent directory in a path. |
`EXEMODE` | Permissions to set for generated executable files. |
`FILEMODE` | Permissions to set for generated regular files. |
`FORTRAN` | Command to compile Fortran source files. |
`FORTRANFLAGS` | Flags to pass to FORTRAN command. |
`HDRS` | Default list of directories of platform headers. |
`HDRPATTERN` | Regex pattern used to match the file part of CPP include directives. |
`JAMFILE` | File to read build instructions/descriptions from. | Default is "Jamfile".
`JAMRULES` | File to read for global rules and variable. | Default is "Jamrules".
`JAMSHELL` | See Perforce/Jam documentation. |
`LEX` | Command for processing Lex compatible parsers. |
`LEX_OUTPUT` | LEX option to directly specify the output files to generate. |
`LN` | Command to create a hard-link to a file. |
`MANDIR` | Directory to install MAN documentation files. |
`MKDIR` | Command to create a directory. |
`MV` | Command to rename files. |
`NOARSCAN` | Platforms archive format does not support scanning. |
`OSFULL` | List of all the variations of the OS platform name and version. |
`PREDLL` | Prefix for generated shared library files. |
`PRELIB` | Prefix for generated link library files. |
`RANLIB` | Command to post-process archives or link libraries. | Set to empty ("") if there is no command.
`RELOCATE` | Flag to indicate that the platform compiler does not support placing generated object files, so we must move them. |
`RM` | Command used to delete files. |
`SED` | Command to execute sed scripts. |
`SHELLHEADER` | Header to prepend in generated shell scripts. |
`SHELLMODE` | Permissions to set for generated shell script files. |
`SHELL_EXPORT` | Command for exporting variables set by Boost.Build to the shell. Not set if there is no command. |
`SHELL_SET` | Comamnd for setting variables in the shell. Includes trailing " " as needed. Set to empty ("") if there is no command. |
`SLASH` | Directory and file separator of the platform. |
`SOURCE_GENERATING_EXTENSIONS` | A list of all file extensions which generate source files when built. |
`SPLITPATH` | Separator of the platform for variables that hold a list of paths. |
`STDHDRS` | Directory location of standard C/C++ headers. |
`SUFDLL` | Suffix for generated shared library files. | Includes any "." as needed.
`SUFFEXE` | Suffix for generated executable files. | Includes any "." as needed.
`SUFLIB` | Suffix for generated link library files. | Includes any "." as needed.
`SUFOBJ` | Suffix for generated compiled object files. | Includes any "." as needed.
`YACC` | Command for processing Yacc compatible grammars. |
`YACCFILES` | The filenames that the YACC command produces. |
`YACCFLAGS` | Extra flags to pass to the YACC command. |
`YACC_OUTPUT` | YACC option to directly specify the output files to generate. |

Revised 14 May, 2002

© Copyright Dave Abrahams 2002. All Rights Reserved.