In line no. 1, we have added a default target called all. So
running make and make all does exactly the
same thing.

In line no. 1, we have all added target dependencies. all
depends on greeting_en, greeting_fr and greeting_es. So
when we run make all, it’s dependencies (greeting_en,
greeting_fr and greeting_es) are build first before building
all.

We have also added a target clean and line no. 15 and 16
to remove generated binaries. We just need to run make
clean in case we want to remove generated binaries.

And to easily run the generates files with one single command,
make run, we have added target at lines 18 to 21.