About: Boost Build

01 Semys code in C and C++ is being built with the Boost Build System V2 (http://boost.sourceforge.net/boost-build2/) and this is the only requirement (other than a compiler) for Semys. At least use Boost.Build V2 (Milestone 12) to have access to all the compilation parameters for the architecture.
02 The main reasons for choosing this target description language are
  • Portability (Platform / Compiler (Version) independent)
  • Extensibility
03

Boost Build has also been chosen because of personal preference. Especially with multi-compiler builds, I don't want to handle several different makefile dialects and compiler switches (although still some need to be supplied).
It handles all the basics and most of the legwork I don't want to care about.


04

Bit Environment (CPU Type)

Semys can be build for both 32bit and 64bit CPUs. The corresponding parameters are:
  • address-model=64 for 64bit compilation
  • address-model=32 for 32bit compilation
It may also be necessary to specify the architecture and instruction set, for example:
  • architecture=x86
  • instruction-set=opteron
  • ...
05 Note that MS Visual Studio provides two different command prompts that automatically select the bit environment. They can not be mixed with the parameters above.
06

Library Linkage

The Semys Library can be created either for static or dynamic linkage.
  • (default): dynamic linkage
  • --libStatic: static linkage
07

Profiling

Available only with the gcc compiler, compilation can be done for profiling with the following parameter.
  • profiling=on
08

Quiet mode

By default, the used bit environment and library linkage are echoed. They can be turned off with the following paramter:
  • --quiet
Actually, only a parameter just for fun.

09

Message Compiler Jam Extension (Windows)

A Windows Service uses precompiled messages for event log entries that are added to the executable as resources. They are described using .mc files and compiled with the message compiler mc.exe (See MSDN for further details).
10 The jam extension semys/arch/cpp/mc.jam calls the message compiler and references the created .rc and .h files.

Goto: Main Page; This page is part of the Semys software documentation. See About: Documentation for details.