ফাংশন তৈরি করুন

দুটি কারণে পণ্য/বোর্ড কনফিগারেশনে নতুন মেক ফাংশন সংজ্ঞায়িত করবেন না:

  1. যদি ফাংশনটি পরে একটি Android.mk ফাইলে ব্যবহার করা হয়, তাহলে পণ্য কনফিগারেশনটি Starlark-এ রূপান্তরিত হলে এটি আর সংজ্ঞায়িত হবে না এবং Android.mk ফাইলটি উদ্দেশ্য অনুযায়ী কাজ নাও করতে পারে।
  2. মেকফাইল টু স্টারলার্ক কনভার্টারটি একবারে শুধুমাত্র একটি ফাইল দেখে এবং ফাংশনের সংজ্ঞাগুলি প্রায়শই বিভিন্ন ফাইলে থাকে যেখানে সেগুলি আহ্বান করা হয়।

যদিও একটি মেক ফাংশন সত্যিই একটি ভেরিয়েবল যা বিল্ট-ইন $(call) ফাংশন ব্যবহার করে মূল্যায়ন করা হয়, মেক টু স্টারলার্ক কনভার্টার ডিফাইন কীওয়ার্ডের সাথে define যেকোনো ভেরিয়েবলকে একটি ফাংশন সংজ্ঞা বলে ধরে নেবে এবং এটি প্রত্যাখ্যান করবে। সুতরাং একটি ফাংশন দেখতে হবে:

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

আমরা কিছু সাধারণ ফাংশন স্বয়ংক্রিয়ভাবে প্রতিস্থাপন করার জন্য স্ক্রিপ্ট প্রদান করি যা মূল বিল্ড সিস্টেম মেকফাইলে সংজ্ঞায়িত করা হয়েছে। এগুলি build/bazel/mk2rbc এ পাওয়া যাবে।