Buat 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 lagi ditentukan saat konfigurasi produk dikonversi ke 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 sering kali 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 fungsi akan terlihat seperti:

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

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