Funciones de Make

No debes definir nuevas funciones de Make en la configuración del producto o la placa por dos motivos:

  1. Si más adelante la función se usa en un archivo Android.mk, ya no se definirá cuando se convierta la configuración del producto a Starlark, y el archivo Android.mk podría no funcionar según lo previsto.
  2. El conversor de Makefile a Starlark solo examina un archivo a la vez, y las definiciones de las funciones suelen estar en archivos diferentes de aquellos en los que se invocan.

Si bien una función de Make es solo una variable que se evalúa mediante la función $(call) integrada, el conversor de Make a Starlark supondrá que cualquier variable definida con la palabra clave define es una definición de función y la rechazará. Por lo tanto, una función se vería de la siguiente manera:

define my-func
  Some text, arg1: $(1)
enddef
$(call my-func,foo)

Proporcionamos secuencias de comandos para reemplazar automáticamente algunas funciones comunes por otras definidas en los archivos makefile del sistema de compilación principal. Puedes encontrarlos en build/bazel/mk2rbc.