### Conditional Expressions in Makefiles

The expression used with the !IF directive can consist of integer constants, string constants, or exit codes returned by programs. Integer constants can use the C unary operators for numerical negation (-), one's complement (~), and logical negation (!). A list of other operators is also included below.

Notes:

- You can use parentheses to group expressions.
- Values are assumed to be decimal values unless specified with a leading 0 (octal) or leading 0x (hexadecimal).
- Strings are enclosed by quotation marks ("). You can use the equality (==) and inequality (!=) operators to compare two strings.
- You can invoke a program in an expression by enclosing the program name in square brackets ([]). The exit code returned by the program is used in the expression.

Here is a list of other operators that can be used with !IF:

Operator | Description
+ | Addition
- | Subtraction
* | Multiplication
/ | Division
% | Modulus
& | Bitwise AND
| | Bitwise OR
^^ | Bitwise XOR
&& | Logical AND
|| | Logical OR
<< | Left shift
>> | Right shift
== | Equality
!= | Inequality
< | Less than
> | Greater than
<= | Less than or equal to
>= | Greater than or equal to

Directives in Makefiles

Supply input to the Make utility from the Command Line
Supply input to the Make utility from a Response File