תעשה חוקים

אל תגדיר חוקי עשה בתצורת המוצר. כלל Make נראה כך:

output_file_name: dependencies
    shell commands to build the output

תצורת המוצר/לוח נועדה להגדיר רק משתנים שישמשו מאוחר יותר ב-build, לא להגדיר פעולות בניה חדשות. יש להמיר כללים אלה למודולי Soong, או כאשר המרת Bazel רחוקה מספיק, Bazel ממקדת. סוג genrule של Soong הוא גנרי מספיק כדי לכסות את רוב מקרי השימוש.

אם ההמרה ל-Soong מאתגרת מדי כרגע, העבר את הכלל לכל קובץ שתואם את {device,product,vendor}/*/[*/]build/tasks/*.mk . קבצים אלה כלולים תמיד על ידי מערכת הבנייה, אך הם נפרדים מתצורת המוצר. הם כלולים כל הזמן, כך שכל כללים שנוספו לשם חייבים להיות מוגנים על ידי משתנה המוגדר בתצורת המוצר, כך שהכלל אינו מוגדר עבור מוצרים אחרים. ראה את רשימת השינויים הזו, העבר יצירת כללים מתצורת הלוח ל-build/משימות

זכור כי בסופו של דבר יהיה צורך להסיר את תיקיות build/tasks כאשר Make יוסר לחלוטין מה-build.