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, make
ele produz dois arquivos:
101.txt:
Hello John Doe
102.txt:
Hello Peter Pan