11.3. Installing Multiple Files Under Different Names

Lastly, if you have multiple files that all need to be installed with different file names, you can either call the InstallAs function multiple times, or as a shorthand, you can supply same-length lists for both the target and source arguments:

env = Environment()
hello = env.Program('hello.c')
goodbye = env.Program('goodbye.c')
               [hello, goodbye])
env.Alias('install', '/usr/bin')

In this case, the InstallAs function loops through both lists simultaneously, and copies each source file into its corresponding target file name:

% scons -Q install
cc -o goodbye.o -c goodbye.c
cc -o goodbye goodbye.o
Install file: "goodbye" as "/usr/bin/goodbye-new"
cc -o hello.o -c hello.c
cc -o hello hello.o
Install file: "hello" as "/usr/bin/hello-new"