Não defina novas funções do Make na configuração do produto/placa por dois motivos:
- Se a função for usada posteriormente em um arquivo
Android.mk
, ela não vai mais ser definida quando a configuração do produto for convertida em Starlark. Talvez o arquivoAndroid.mk
não funcione como esperado. - O conversor do Makefile para Starlark analisa apenas um arquivo por vez e as definições de função geralmente ficam em arquivos diferentes do local em que são invocadas.
Embora uma função do Make seja uma variável que é avaliada usando a
função $(call)
integrada, o conversor do Make para Starlark vai presumir que qualquer
variável definida com a palavra-chave define
é uma definição de função e
a rejeitar. Dessa forma, uma função seria semelhante a esta:
define my-func
Some text, arg1: $(1)
enddef
$(call my-func,foo)
Fornecemos scripts para substituir automaticamente algumas funções comuns por aquelas definidas nos Makefiles do sistema de compilação principal. Eles podem ser encontrados em build/bazel/mk2rbc.