.TH REMAKE 1 "5 June 2020" "GNU" "User Commands" .SH "نام (NAME)" remake \- ابزار GNU make برای نگهداری و مدیریت مجموعه‌ای از برنامه‌ها .SH "خلاصه دستور (SYNOPSIS)" .B remake [\fIOPTION\fR]... [\fITARGET\fR]... .SH "توضیحات (DESCRIPTION)" .LP ابزار .I remake به‌طور خودکار تعیین می‌کند که کدام بخش‌های یک برنامه بزرگ باید مجدداً کامپایل شوند، و دستورهای لازم برای کامپایل مجدد آن‌ها را صادر می‌کند. این راهنما پیاده‌سازی گنو از .BR make را شرح می‌دهد که remake از آن برگرفته شده است؛ برنامه‌ای که توسط ریچارد استالمن (Richard Stallman) و رولند مک‌گراث (Roland McGrath) نوشته شده و در حال حاضر توسط پاول اسمیت (Paul Smith) نگهداری می‌شود. افزونه‌های گزارش‌دهی خطای پیشرفته، دیباگر، و پروفایلینگ توسط راکی برنشتاین (Rocky Bernstein) نوشته شده‌اند. مثال‌های ما برنامه‌های C را نشان می‌دهند، زیرا بسیار رایج هستند، اما شما می‌توانید از .B remake برای هر زبان برنامه‌نویسی که کامپایلر آن با یک دستور شل قابل اجرا باشد استفاده کنید. در واقع، .B remake یا .B make تنها به برنامه‌ها محدود نمی‌شوند. شما می‌توانید از آن برای توصیف هر کاری استفاده کنید که در آن تعدادی از فایل‌ها باید هر زمان که فایل‌های دیگر تغییر می‌کنند، به‌طور خودکار بر اساس آن‌ها به‌روزرسانی شوند. .LP برای آماده‌سازی جهت استفاده از .BR remake ، باید فایلی به نام .I makefile بنویسید که روابط میان فایل‌های برنامه شما را توصیف کند و دستورهای لازم برای به‌روزرسانی هر فایل را مشخص نماید. در یک برنامه، معمولاً فایل اجرایی از فایل‌های شیء (object files) به‌روزرسانی می‌شود، که آن‌ها نیز به نوبه خود از کامپایل فایل‌های منبع ساخته می‌شوند. .LP هنگامی که یک makefile مناسب وجود داشته باشد، هر بار که برخی از فایل‌های منبع را تغییر می‌دهید، اجرای این دستور ساده شل: .sp 1 .RS .B remake .RE .sp 1 برای انجام تمام کامپایل‌های مجددِ لازم کافی است. برنامه .B remake از توضیحات makefile و زمان آخرین تغییر فایل‌ها استفاده می‌کند تا تصمیم بگیرد کدام فایل‌ها نیاز به به‌روزرسانی دارند. برای هر یک از آن فایل‌ها، دستورهای ثبت‌شده در makefile را صادر می‌کند. .LP .B remake دستورهای موجود در .I makefile را برای به‌روزرسانی یک یا چند .IR name هدف اجرا می‌کند که در آن .I name معمولاً یک برنامه است. اگر گزینه .B \-f داده نشود، .B remake به ترتیب به دنبال makefileهای .IR GNUmakefile ، .IR makefile و .IR Makefile می‌گردد. .LP معمولاً باید makefile خود را .I makefile یا .IR Makefile بنامید. (ما .I Makefile را توصیه می‌کنیم زیرا در فهرست دایرکتوری در جایگاه برجسته‌ای نزدیک به ابتدا ظاهر می‌شود، درست در کنار سایر فایل‌های مهم مانند .IR README .) نام اولی که بررسی می‌شود، یعنی .IR GNUmakefile ، برای اکثر makefileها توصیه نمی‌شود. تنها در صورتی باید از این نام استفاده کنید که یک makefile مختص گنو .B remake داشته باشید و توسط سایر نسخه‌های .B remake قابل فهم نباشد. اگر .I makefile برابر با «\-» باشد، ورودی استاندارد خوانده می‌شود. .LP .B remake یک هدف را در صورتی به‌روزرسانی می‌کند که به فایل‌های پیش‌نیازی وابسته باشد که پس از آخرین تغییر آن هدف تغییر یافته‌اند، یا اگر هدف اصلاً وجود نداشته باشد. .SH "گزینه‌ها (OPTIONS)" .LP در ادامه گزینه‌هایی که مختص .BR remake هستند آورده شده است. برای سایر گزینه‌ها، لطفاً به مستندات GNU Make مراجعه کنید. .TP 0.5i \fB\-c\fR, \fB\-\-search-parent\fR اگر یک Makefile یا هدف نهایی در دایرکتوری فعلی یافت نشود، .B remake در دایرکتوری والد به دنبال Makefile می‌گردد. با پیدا شدن نزدیک‌ترین دایرکتوری والد حاوی Makefile، .B remake دایرکتوری کاری فعلی خود را روی دایرکتوری‌ای که Makefile در آن یافت شده تنظیم می‌کند. .sp 1 از این نظر، گزینه کوتاه «\-c» شبیه به «\-C» است، با این تفاوت که نیازی به مشخص کردن هیچ دایرکتوری‌ای نیست. .sp 1 .TP 0.5i \fB\-!\fR, \fB\-\-post\-mortem\fR در صورت بروز خطا وارد دیباگر می‌شود. این گزینه معادل گزینه‌های زیر است: \-\-debugger \-\-debugger\-stop=error .TP 0.5i .B \-P, " \-\-profile [=TYPE]" خروجی پروفایلینگ زمان‌بندی و وابستگی‌ها را با استفاده از .I TYPE مشخص‌شده برای قالب‌بندی فعال می‌کند. .I TYPE می‌تواند .I callgrind یا .IR json باشد. در صورت حذف، مقدار پیش‌فرض آن .IR callgrind است. فایل‌های تولیدشده با .I callgrind را می‌توان با kcachegrind، callgrind_annotate، یا gprof2dot تحلیل کرد. فایل‌های تولیدشده با .I json دارای قالبی هستند که در راهنمای .I info مشخص شده است. .TP 0.5i .B \-\-profile\-directory=[PATH] مسیری (\fIPATH\fR) را مشخص می‌کند که فایل‌های پروفایلینگ باید در آن نوشته شوند. این مسیر باید قبل از اجرای .IR make وجود داشته باشد. فرض می‌شود این یک مسیر نسبی نسبت به دایرکتوری اولیه‌ای است که .I make در آن فراخوانی شده است، مگر اینکه با ~ یا / آغاز شود. .TP 0.5i .BR "\-\-targets" فهرستی از اهدافی با نام صریح را که در makefileهای خوانده‌شده یافت می‌شوند، چاپ می‌کند. .TP 0.5i .BR \-\-tasks فهرستی از اهدافی با نام صریح در makefileهای خوانده‌شده را که دارای کامنت‌های توضیحی هستند، چاپ می‌کند. یک کامنت توضیحی با قرار دادن یک کامنت پیش از هدف که با «#:» آغاز می‌شود، اضافه می‌گردد. .TP 0.5i .B \-x, " \-\-trace [=FLAGS]" تنظیم فلگ‌های ردگیری (trace). اگر .I FLAGS حذف شود، رفتار برنامه همانند حالتی است که .B \-\-trace=normal مشخص شده باشد. .I FLAGS می‌تواند .I read برای ردگیری Makefileهای خوانده‌شده، .I noshell که شبیه به \fInormal\fR است اما ردگیری شل در آن غیرفعال است، یا .I full برای حداکثر مقدار ردگیری باشد. .TP 0.5i .B \-X, "\-\-debugger [=TYPE]" ورود به دیباگر. اگر .I TYPE حذف شود، رفتار برنامه همانند حالتی است که .B \-\-debugger=normal مشخص شده باشد. .I TYPE می‌تواند موارد زیر باشد: .I goal برای ردگیری تمام Makefileهای خوانده‌شده، .I preread که قبل از خواندن هرگونه Makefile متوقف می‌شود، .I goal که پس از ساخته‌شدن هدف غایی متوقف می‌شود، .I normal که همانند عدم تعیین گزینه است، .I preaction که مانند \fInormal\fR است اما ردگیری شل در آن غیرفعال است، .I full برای حداکثر ردگیری؛ معادل ارسال تمام گزینه‌ها به‌جز «normal»، .I fatal برای ورود به دیباگر در هنگام بروز یک خطای مهلک، .I error برای ورود به دیباگر در هنگام بروز خطا. .SH "همچنین ببینید (SEE ALSO)" مستندات کامل .B remake به صورت یک کتابچه راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های .B info و .B remake به‌درستی روی سیستم شما نصب شده باشند، دستور .IP .B info remake .PP باید دسترسی شما به راهنمای .B remake را فراهم کند. .SH "گزارش باگ‌ها (BUGS)" از آنجا که این برنامه از GNU Make مشتق شده است، اکثر باگ‌های آن را نیز دارد. .LP فصل «Problems and Bugs» را در .IR "The GNU Make Manual" ببینید. .LP برای باگ‌های مختص .B remake به نشانی .IR https://github.com/rocky/remake/issues مراجعه کنید. .SH "نویسندگان (AUTHORS)" ابزار .IR "GNU make" که .IR remake از آن مشتق شده است، توسط ریچارد استالمن (Richard Stallman) و رولند مک‌گراث (Roland McGrath) نوشته شده و در حال حاضر توسط پاول اسمیت (Paul Smith) نگهداری می‌شود. با این حال، .IR remake ایده و دستاورد راکی برنشتاین (Rocky Bernstein) است. از کمک‌های دیگران نیز کمال قدردانی وجود دارد. نام .IR remake را نیز مایکل لرد ولز (Michael Lord Welles) پیشنهاد داده است. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" حق نشر \(co 1992-1993, 1996-2020 Free Software Foundation, Inc. این فایل بخشی از .IR "GNU make" است. .LP برنامه GNU Make نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط پروانه عمومی همگانی گنو (GNU GPL) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، بازتوزیع کنید یا تغییر دهید؛ یا نسخه ۳ پروانه، یا (به انتخاب خودتان) هر نسخه بعدی دیگر. .LP برنامه GNU Make به این امید توزیع شده است که مفید باشد، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به پروانه عمومی همگانی گنو مراجعه کنید. .LP شما باید به همراه این برنامه یک نسخه از پروانه عمومی همگانی گنو را دریافت کرده باشید. در غیر این صورت، ببینید: .IR http://www.gnu.org/licenses