6.6. Ignoring Dependencies: the `Ignore` Function
Prev | Chapter 6. Dependencies | Next

## 6.6. Ignoring Dependencies: the `Ignore` Function

Sometimes it makes sense to not rebuild a program, even if a dependency file changes. In this case, you would tell SCons specifically to ignore a dependency using the `Ignore` function as follows:

    hello_obj=Object('hello.c')
    hello = Program(hello_obj)
    Ignore(hello_obj, 'hello.h')

    % scons -Q hello
    cc -c -o hello.o hello.c
    cc -o hello hello.o
    % scons -Q hello
    scons: `hello' is up to date.
    % edit hello.h
      [CHANGE THE CONTENTS OF hello.h]
    % scons -Q hello
    scons: `hello' is up to date.

Now, the above example is a little contrived, because it's hard to imagine a real-world situation where you wouldn't want to rebuild `hello` if the `hello.h` file changed. A more realistic example might be if the `hello` program is being built in a directory that is shared between multiple systems that have different copies of the `stdio.h` include file. In that case, SCons would notice the differences between the different systems' copies of `stdio.h` and would rebuild `hello` each time you change systems. You could avoid these rebuilds as follows:

    hello = Program('hello.c', CPPPATH=['/usr/include'])
    Ignore(hello, '/usr/include/stdio.h')

`Ignore` can also be used to prevent a generated file from being built by default. This is due to the fact that directories depend on their contents. So to ignore a generated file from the default build, you specify that the directory should ignore the generated file. Note that the file will still be built if the user specifically requests the target on scons command line, or if the file is a dependency of another file which is requested and/or is built by default.

    hello_obj=Object('hello.c')
    hello = Program(hello_obj)
    Ignore('.',[hello,hello_obj])

    % scons -Q
    scons: `.' is up to date.
    % scons -Q hello
    cc -o hello.o -c hello.c
    cc -o hello hello.o
    % scons -Q hello
    scons: `hello' is up to date.

Prev | Up | Next
6.5. Dependencies From External Files: the `ParseDepends` Function | Home | 6.7. Order-Only Dependencies: the `Requires` Function