Defina sua própria função em um Makefile

Olhando para alguns alvos do meu Makefile, vi que havia alguma duplicação. Não sabia que podia criar funções … Até agora 🙂

Aqui está um Makefile simples com uma função personalizada:

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)

Conteúdo de greetings.tmpl:

Hello {NAME}

É assim que você executa sua função personalizada:

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

Em sua função, o primeiro parâmetro se torna $(1), o segundo $(2), etc.

Quando você o executa, makeele produz dois arquivos:

101.txt:

Hello John Doe

102.txt:

Hello Peter Pan