Simple Builds

SCons User Guide 0.98.0
Prev |  | Next

# Chapter 2. Simple Builds

In this chapter, you will see several examples of very simple build configurations using SCons, which will demonstrate how easy it is to use SCons to build programs from several different programming languages on different types of systems.

# 2.1. Building Simple C / C++ Programs

Here's the famous "Hello, World!" program in C:

          int
          main()
          {
              printf("Hello, world!\n");
          }

And here's how to build it using SCons. Enter the following into a file named `SConstruct`:

          Program('hello.c')

This minimal configuration file gives SCons two pieces of information: what you want to build (an executable program), and the input file from which you want it built (the `hello.c` file). `Program` is a builder_method, a Python call that tells SCons that you want to build an executable program.

That's it. Now run the scons command to build the program. On a POSIX-compliant system like Linux or UNIX, you'll see something like:

          % scons
          scons: Reading SConscript files ...
          scons: done reading SConscript files.
          scons: Building targets ...
          cc -o hello.o -c hello.c
          cc -o hello hello.o
          scons: done building targets.

On a Windows system with the Microsoft Visual C++ compiler, you'll see something like:

          C:\>scons
          scons: Reading SConscript files ...
          scons: done reading SConscript files.
          scons: Building targets ...
          cl /nologo /c hello.c /Fohello.obj
          link /nologo /OUT:hello.exe hello.obj
          scons: done building targets.

First, notice that you only need to specify the name of the source file, and that SCons correctly deduces the names of the object and executable files to be built from the base of the source file name.

Second, notice that the same input `SConstruct` file, without any changes, generates the correct output file names on both systems: `hello.o` and `hello` on POSIX systems, `hello.obj` and `hello.exe` on Windows systems. This is a simple example of how SCons makes it extremely easy to write portable software builds.

(Note that we won't provide duplicate side-by-side POSIX and Windows output for all of the examples in this guide; just keep in mind that, unless otherwise specified, any of the examples should work equally well on both types of systems.)

Prev | Home | Next
Building and Installing SCons on Any System |  | Building Object Files