Go to the first, previous, next, last section, table of contents.

## The `override` Directive

If a variable has been set with a command argument (see section Overriding Variables), then ordinary assignments in the makefile are ignored. If you want to set the variable in the makefile even though it was set with a command argument, you can use an `override` directive, which is a line that looks like this:

    override variable = value

or

    override variable := value

To append more text to a variable defined on the command line, use:

    override variable += more text

See section Appending More Text to Variables.

The `override` directive was not invented for escalation in the war between makefiles and command arguments. It was invented so you can alter and add to values that the user specifies with command arguments.

For example, suppose you always want the ``-g'` switch when you run the C compiler, but you would like to allow the user to specify the other switches with a command argument just as usual. You could use this `override` directive:

    override CFLAGS += -g

You can also use `override` directives with `define` directives. This is done as you might expect:

    override define foo
    bar
    endef

See the next section for information about `define`.

Go to the first, previous, next, last section, table of contents.