Faça funções

Não defina novas funções make na configuração do produto/placa, por dois motivos:

  1. Se a função for usada posteriormente em um arquivo Android.mk , ela não será mais definida quando a configuração do produto for convertida para Starlark, e o arquivo Android.mk pode não funcionar conforme o esperado.
  2. O conversor de Makefile para Starlark analisa apenas um arquivo por vez, e as definições de função geralmente estão em arquivos diferentes de onde são invocadas.

Enquanto uma função make é realmente apenas uma variável que é avaliada usando a função interna $(call) , o conversor Make to Starlark assumirá que qualquer variável definida com a palavra-chave define é uma definição de função e a rejeitará. Então uma função ficaria assim:

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 .