אל תגדיר חוקי עשה בתצורת המוצר. כלל 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.