| SAMU(1) | General Commands Manual | SAMU(1) |
نام (NAME)
samu —
ابزار
ساخت
سازگار با
ninja
خلاصه دستور (SYNOPSIS)
samu [-C
dir] [-d
debugflag] [-f
buildfile] [-j
maxjobs] [-k
maxfail] [-l
maxload] [-w
warnflag=action] [-nv]
[target...] samu
[-C dir]
[-f buildfile]
-t clean
[-gr] [target...]
samu [-C
dir] [-f
buildfile] -t
compdb [-x]
[rule...] samu
[-C dir]
[-f buildfile]
-t commands
[target...] samu
[-C dir]
[-f buildfile]
-t graph
[target...] samu
[-C dir]
[-f buildfile]
-t query
[target...] samu
[-C dir]
[-f buildfile]
-t targets
[depth [maxdepth]]
samu [-C
dir] [-f
buildfile] -t
targets rule
[rulename] samu
[-C dir]
[-f buildfile]
-t targets
all
توضیحات (DESCRIPTION)
دستور
samu یک
مانیفست
ساخت را از
buildfile
بارگیری
کرده و در
صورتی که
targets قدیمی
باشند،
آنها را
دوباره
میسازد.
اگر هیچ
هدفی مشخص
نشده باشد،
هدفهای
پیشفرض
مانیفست
ساخته
میشوند.
اگر هدف
پیشفرضی
وجود
نداشته
باشد،
گرههای
برگ گراف
وابستگی
ساخته
میشوند
(خروجیهایی
که هیچ
عملیات
مصرفکنندهای
ندارند).
هدفها در
صورتی
قدیمی در
نظر گرفته
میشوند که
از
تازهترین
ورودی
عملیات
تولیدکننده
قدیمیتر
باشند،
مدخلی در
گزارش ساخت
(build log) نداشته
باشند، یا
دستور ساخت
هدف با آنچه
پیشتر
استفاده
شده تفاوت
داشته باشد.
هدفهایی
که با قواعد
generator ساخته
شدهاند،
در صورت
تغییر
دستور
دوباره
ساخته
نخواهند
شد.
اگر از
ابزار فرعی
clean
استفاده
شود، در عوض
هدفها
پاکسازی
میشوند.
هنگامی که
یک هدف
پاکسازی
میشود، آن
هدف حذف شده
و تمام
ورودیهای
آن نیز
پاکسازی
خواهند شد.
هدفهایی
که هیچ
عملیات
تولیدکنندهای
ندارند
هرگز حذف
نمیشوند.
هدفهای
ساختهشده
با قواعد
generator تنها
در صورتی
حذف
میشوند که
گزینهٔ -g
مشخص شده
باشد.
اگر از
ابزار فرعی
commands
استفاده
شود،
فهرستی از
دستورهای
شل که برای
ساخت
هدفهای
مشخصشده
(یا پیشفرض)
استفاده
شدهاند،
چاپ
میشود.
اگر از
ابزار فرعی
compdb
استفاده
شود، در عوض
یک
پایگاهداده
همگردانی
(https://clang.llvm.org/docs/JSONCompilationDatabase.html)
چاپ
میشود.
اگر از
ابزار فرعی
graph
استفاده
شود، در عوض
یک فایل دات
graphviz چاپ
میشود.
اگر از
ابزار فرعی
query
استفاده
شود، در عوض
ورودیها و
خروجیهای
هدفها چاپ
میشوند.
اگر از
ابزار فرعی
targets
استفاده
شود،
فهرستی از
هدفها، بر
اساس قاعده
یا بر اساس
عمق نمایش
داده خواهد
شد. آرگومان
نخست نحوهٔ
نمایش
هدفها را
تعیین
میکند:
depth- یک درخت دندانهدار از هدفها، با شروع از هدفهای ریشه (آنهایی که هیچ هدف وابستهای ندارند)، تا عمق مشخصشده توسط maxdepth (پیشفرض: 1) نمایش داده خواهد شد.
rule- اگر rulename داده شود، فهرستی از هدفهایی که از قاعدهٔ دادهشده استفاده میکنند نمایش داده خواهد شد. در غیر این صورت، فهرستی از فایلهای منبع نمایش مییابد.
all- فهرستی از همهٔ هدفها نمایش داده خواهد شد.
گزینهها (OPTIONS)
-C- تغییر دایرکتوری کاری به dir پیش از ساخت.
-d- فعال کردن
یک گزینهٔ
اشکالزدایی.
این پرچم
میتواند
چندین بار
مشخص شود تا
چندین
گزینهٔ
اشکالزدایی
فعال گردند.
مقادیر
ممکن برای
debugflag
عبارتند از:
explain- چاپ پیامهایی برای توضیح اینکه چرا خروجیها نیازمند بازسازی (dirty) بودند.
keepdepfile- عدم حذف فایل $depfile پس از تجزیه شدن آن.
keeprsp- عدم حذف فایل $rspfile پس از تکمیل یا شکست وظیفه.
-f- بارگیری مانیفست از buildfile به جای build.ninja.
-j- اجرای حداکثر maxjobs وظیفه به صورت موازی (پیشفرض بر اساس تعداد پردازندهها تعیین میشود). اگر صفر باشد، تعداد نامحدودی از وظایف همزمان مجاز خواهد بود.
-k- مجاز دانستن حداکثر تا maxfail شکست در وظایف. اگر منفی یا صفر باشد، هر تعداد شکست در وظایف مجاز خواهد بود.
-l- عدم اجرای وظایف جدید در صورتی که درصد بار کاری سیستم بیشتر از maxload باشد. اگر صفر باشد، وظایف در سریعترین زمان ممکن اجرا میشوند.
-n- دستورها را عملاً اجرا نکرده و گزارش را بهروزرسانی نکند.
-v- چاپ کامل دستورها به جای فقط description.
-w- کنترل
نحوهٔ
مدیریت
خطاهای خاص.
اگر warnflag
برابر با
dupbuildباشد، action تعیین میکند در صورتی که یک خروجی در چند یال ساخت فهرست شده باشد، چه اقدامی صورت گیرد. اگر action برابر باerrباشد، با آن مانند یک خطا رفتار کرده و عملیات متوقف میشود. اگر action برابر باwarnباشد، تنها یک پیام تشخیصی چاپ میکند. -t- به جای
ساختن، یک
ابزار فرعی
را
فراخوانی
میکند.
تمام
آرگومانها
و پرچمهای
پس از ابزار
فرعی، توسط
همان ابزار
فرعی تفسیر
میشوند.
ابزارهای
فرعی
پشتیبانیشده
در حال حاضر
عبارتند از:
clean ،commands ،compdb ،graph ،queryوtargets. -g- هنگام پاکسازی، خروجیهای عملیاتهای generator را نیز پاک میکند.
-r- آرگومانهای targets به عنوان قاعده تفسیر میشوند و در عوض، تمام خروجیهای عملیاتهایی با نوع قواعد مشخصشده پاک خواهند شد.
-x- هنگام چاپ پایگاهداده همگردانی، @$rspfile را با $rspfile_content (با قرار دادن <blank> به جای <newline>) جایگزین میکند.
محیط (ENVIRONMENT)
SAMUFLAGS- گزینههایی
برای
samuکه پیش از گزینههای خط فرمان اعمال میشوند. تنها گزینههای مجاز درSAMUFLAGSعبارتند از-v-،-jو-l. NINJA_STATUS- خروجی
وضعیتی که
در سمت چپ
توضیحات هر
قاعده، با
استفاده از
مشخصکنندههای
تبدیل شبیه
به printf چاپ
میشود. در
صورت تنظیم
نشدن،
مقدار
پیشفرض "[%s/%t]
" است.
مشخصکنندههای تبدیلِ دردسترس:
همچنین ببینید (SEE ALSO)
| December 29, 2024 | Linux 6.12.107+deb13-amd64 |