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:

define generate_file
    sed 's/{NAME}/$(1)/' greetings.tmpl >$(2).txt
endef

all:
    $(call generate_file,John Doe,101)
    $(call generate_file,Peter Pan,102)

Contents of greetings.tmpl:

Hello {NAME}

This is how you execute your custom function:

$(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

Related Posts

  • Loading env vars in your build scripts
  • Taking an Android screenshot via terminal
  • Embedding file with Go 1.16
  • Truncating a Unix timestamp to the hour using Go
  • My favourite Kubernetes client: Lens