No defina nuevas funciones de creación en la configuración del producto/placa, por dos razones:
- Si la función se usa más tarde en un archivo
Android.mk
, ya no se definirá cuando la configuración del producto se convierta a Starlark, y es posible que el archivoAndroid.mk
no funcione según lo previsto. - El convertidor de Makefile a Starlark solo mira un archivo a la vez, y las definiciones de función a menudo se encuentran en archivos diferentes de donde se invocan.
Si bien una función make es realmente solo una variable que se evalúa mediante la función $(call)
incorporada, el convertidor Make to Starlark asumirá que cualquier variable definida con la palabra clave define
es una definición de función y la rechazará. Así que una función se vería así:
define my-func
Some text, arg1: $(1)
enddef
$(call my-func,foo)
Proporcionamos secuencias de comandos para reemplazar automáticamente algunas funciones comunes con las que están definidas en los archivos Makefile del sistema de compilación principal. Se pueden encontrar en build/bazel/mk2rbc .