#development #tools

Looking at some targets of my Makefile I saw that there were some duplication.

I didn't know that I could create functions... Until now :-)

Here is a simple Makefile with a custom function:

1define generate_file
2    sed 's/{NAME}/$(1)/' greetings.tmpl >$(2).txt
3endef
4
5all:
6    $(call generate_file,John Doe,101)
7    $(call generate_file,Peter Pan,102)

Contents of greetings.tmpl:

Hello {NAME}

This is how you execute your custom function:

1$(call <name_of_function>[, <param>][,<param>][,...])

In your function the first parameter becomes $(1), the second $(2), etc.

Source: https://coderwall.com/p/cezf6g/define-your-own-function-in-a-makefile