3.2. Compiling Multiple Source Files
Prev | Chapter 3. Less Simple Things to Do With Builds | Next

## 3.2. Compiling Multiple Source Files

You've just seen how to configure SCons to compile a program from a single source file. It's more common, of course, that you'll need to build a program from many input source files, not just one. To do this, you need to put the source files in a Python list (enclosed in square brackets), like so:

    Program(['prog.c', 'file1.c', 'file2.c'])

A build of the above example would look like:

    % scons -Q
    cc -o file1.o -c file1.c
    cc -o file2.o -c file2.c
    cc -o prog.o -c prog.c
    cc -o prog prog.o file1.o file2.o

Notice that SCons deduces the output program name from the first source file specified in the list--that is, because the first source file was `prog.c`, SCons will name the resulting program `prog` (or `prog.exe` on a Windows system). If you want to specify a different program name, then (as described in the previous section) you slide the list of source files over to the right to make room for the output program file name. Here is the updated example:

    Program('program', ['prog.c', 'file1.c', 'file2.c'])

On Linux, a build of this example would look like:

    % scons -Q
    cc -o file1.o -c file1.c
    cc -o file2.o -c file2.c
    cc -o prog.o -c prog.c
    cc -o program prog.o file1.o file2.o

Or on Windows:

    C:\>scons -Q
    cl /Fofile1.obj /c file1.c /nologo
    cl /Fofile2.obj /c file2.c /nologo
    cl /Foprog.obj /c prog.c /nologo
    link /nologo /OUT:program.exe prog.obj file1.obj file2.obj
    embedManifestExeCheck(target, source, env)

Prev | Up | Next
Chapter 3. Less Simple Things to Do With Builds | Home | 3.3. Making a list of files with `Glob`