Crea funzioni

Non definire nuove funzioni make nella configurazione prodotto/scheda, per due motivi:

  1. Se la funzione viene successivamente utilizzata in un file Android.mk , non verrà più definita quando la configurazione del prodotto viene convertita in Starlark e il file Android.mk potrebbe non funzionare come previsto.
  2. Il convertitore da Makefile a Starlark esamina solo un file alla volta e le definizioni delle funzioni si trovano spesso in file diversi rispetto a dove vengono richiamate.

Mentre una funzione make è in realtà solo una variabile valutata utilizzando la funzione incorporata $(call) , il convertitore Make to Starlark assumerà che qualsiasi variabile definita con la parola chiave define sia una definizione di funzione e la rifiuterà. Quindi una funzione sarebbe simile a:

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

Forniamo script per sostituire automaticamente alcune funzioni comuni con quelle definite nei Makefile del sistema di build principale. Possono essere trovati in build/bazel/mk2rbc .