Buatlah fungsi

Jangan mendefinisikan fungsi make baru dalam konfigurasi produk/papan, karena dua alasan:

  1. Jika nanti fungsi tersebut digunakan dalam file Android.mk , fungsi tersebut tidak akan ditentukan lagi saat konfigurasi produk diubah menjadi Starlark, dan file Android.mk mungkin tidak berfungsi sebagaimana mestinya.
  2. Konverter Makefile ke Starlark hanya melihat satu file pada satu waktu, dan definisi fungsi seringkali berada di file yang berbeda dari tempat mereka dipanggil.

Sementara fungsi make sebenarnya hanyalah variabel yang dievaluasi menggunakan fungsi $(call) bawaan, konverter Make to Starlark akan menganggap variabel apa pun yang ditentukan dengan kata kunci define adalah definisi fungsi dan menolaknya. Jadi suatu fungsi akan terlihat seperti:

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

Kami menyediakan skrip untuk mengganti beberapa fungsi umum secara otomatis dengan yang ditentukan dalam Makefile sistem build inti. Mereka dapat ditemukan di build/bazel/mk2rbc .