# Makefile Tricks: Arithmetic – Addition, Subtraction, Multiplication, Division, Modulo, Comparison

While working on a project, I needed to do some calculations inside a Makefile. Took me sometime to figure out how, hence jotting it down. Here’s a sample makefile where I have show examples of standard calculations.

```NUMBER1 := 10
NUMBER2 := 5

ADD := \$(shell echo \${NUMBER1}+\${NUMBER2} | bc)

#Subtraction
SUBTRACT := \$(shell echo \${NUMBER1}-\${NUMBER2} | bc)

#Multiplication
MULTIPLY := \$(shell echo \${NUMBER1}*\${NUMBER2} | bc)

#Division
DIVIDE := \$(shell echo \${NUMBER1}/\${NUMBER2} | bc)

#Division (Floating Point)
DIVIDEF := \$(shell echo "scale=3; \${NUMBER2}/\${NUMBER1}" | bc)

#Modulo
MODULO := \$(shell echo \${NUMBER1}%\${NUMBER2} | bc)

#Comparison Greater Than
COMPARISON1 := \$(shell echo \${NUMBER1}\>=\${NUMBER2} | bc)

#Comparison Smaller Than
COMPARISON2 := \$(shell echo \${NUMBER2}\<=\${NUMBER2} | bc)

all:
@echo Subtraction \${SUBTRACT}
@echo Multiplication \${MULTIPLY}
@echo Division \${DIVIDE}
@echo Division  - Floating Point \${DIVIDEF}
@echo Modulo \${MODULO}
@echo Comparison Greater Than \${COMPARISON1}
@echo Comparison Smaller Than \${COMPARISON2}

```

Besides what is shown above, you can use anything that `bc` supports like boolean operators, relational expressions etc.

To execute the above code, copy the code to a file and name the file `Makefile`. Run the `make` command in the directory you created the `Makefile` in. You should see the following output.

```@\$ make