.TH "icmake" "1" "1992\-2025" "icmake\&.13\&.00\&.03" "ابزار نگهداری برنامه" .PP .SH "نام (NAME)" icmake \- ابزار نگهداری و ساخت برنامه (\fImake\fP) با استفاده از گرامری شبیه به \fBC\fP .PP .SH "خلاصه دستور (SYNOPSIS)" \fBicmake\fP option(s) \fI[source [dest]]\fP [args] .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBIcmake\fP(1) یک ابزار عمومی برای نگهداری و ساخت برنامه‌هاست که می‌تواند به عنوان جایگزینی برای ابزارهایی مانند \fBmake\fP(1) استفاده شود. این ابزار از این جهت عمومی است که اسکریپت‌های \fIicmake\fP، نوشته‌شده به زبانی بسیار شبیه به زبان برنامه‌نویسی \fBC\fP، می‌توانند وظایفی را انجام دهند که به طور سنتی در حیطه زبان‌های اسکریپت‌نویسی قرار دارند. .PP این صفحه راهنما شامل بخش‌های زیر است: .IP o بخش \fBICMAKE V\&. 13\&.00\&.00\fP تغییرات اعمال‌شده از نسخه 12\&.03\&.00 \fBicmake\fP را پوشش می‌دهد؛ .IP o بخش \fBگزینه‌ها (OPTIONS)\fP گزینه‌های خط فرمان \fBicmake\fP را توضیح می‌دهد؛ .IP o بخش \fBاجرای اسکریپت‌های ICMAKE (EXECUTING ICMAKE SCRIPTS)\fP نحوه فراخوانی اسکریپت‌های \fBicmake\fP را شرح می‌دهد؛ .IP o بخش \fBICM\-DEP\fP برنامه کمکی \fIicm\-dep\fP را توصیف می‌کند؛ .IP o بخش \fBICM\-MULTICOMP\fP برنامه کمکی \fIicm\-multicomp\fP را توصیف می‌کند؛ .IP o بخش \fBICM\-SPCH\fP برنامه کمکی \fIicm\-spch\fP را توصیف می‌کند؛ .IP o بخش \fBICM\-UN\fP برنامه کمکی \fIicm\-un\fP را توصیف می‌کند؛ .IP o بخش \fBفایل‌ها (FILES)\fP نمایی کلی از محل قرارگیری \fBicmake\fP و برنامه‌های کمکی آن (همان‌طور که در توزیع دبیان لینوکس استفاده می‌شود) ارائه می‌دهد؛ .IP o بخش \fBمثال‌ها (EXAMPLES)\fP حاوی ارجاعاتی به مکان‌های شامل نمونه اسکریپت‌ها است؛ .IP o بخش \fBهمچنین ببینید (SEE ALSO)\fP شامل ارجاعاتی به صفحات راهنمای برنامه‌های کمکی \fBicmake\fP و برنامه‌های مرتبط با آن است، به‌ویژه: .RS .IP o صفحه راهنمای \fBicmstart\fP(1)، که نحوه مقداردهی اولیه یک دایرکتوری را برای توسعه برنامه‌های (\fBC++\fP یا \fBC\fP) شرح می‌دهد؛ .IP o صفحه راهنمای \fBicmbuild\fP(1)، که نحوه استفاده از \fBicmake\fP را برای نگهداری و ساخت چنین برنامه‌هایی پوشش می‌دهد؛ .IP o صفحه راهنمای \fBicmscript\fP(7)، که قواعد نحوی و امکانات زبان اسکریپت‌نویسی \fBicmake\fP را توضیح می‌دهد و به شما اجازه می‌دهد اسکریپت‌های سفارشی \fBicmake\fP خود را بنویسید. .RE .PP برنامه \fBIcmake\fP به برنامه‌نویسان امکان می‌دهد از یک زبان اسکریپت‌نویسی (که بسیار شبیه زبان برنامه‌نویسی شناخته‌شده \fBC\fP است) برای تعریف اقداماتی که برای نگهداری و ساخت برنامه‌های (پیچیده) نیاز است، استفاده کنند. برای این منظور، \fBicmake\fP عملگرهای ویژه متعددی و همچنین مجموعه‌ای از توابع کمکی ارائه می‌دهد که کارآمدی خود را در مدیریت ساخت برنامه‌ها ثابت کرده‌اند. .PP برنامه \fBIcmake\fP نباید با یک محیط توسعه یکپارچه (IDE) اشتباه گرفته شود. \fBIcmake\fP صرفاً وظایفی را انجام می‌دهد که برای آن‌ها می‌توان اسکریپت نوشت، و حداقل مجموعه‌ای از اسکریپت‌های از پیش تعریف‌شده (\fBicmstart\fP و \fBicmbuild\fP) که سودمندی آن‌ها هنگام توسعه و نگهداری برنامه‌ها اثبات شده، در بسته توزیع \fBicmake\fP گنجانده شده است. .PP هنگام استفاده از \fBicmbuild\fP(1) برای نگهداری برنامه، برنامه‌های کمکی زیر از \fBicmake\fP به کار گرفته می‌شوند: .IP o برنامه \fIicm\-comp\fP برای کامپایل اسکریپت \fBicmake\fP به بایت‌کد؛ .IP o برنامه \fIicm\-dep\fP برای مدیریت وابستگی‌های میان کلاس‌ها؛ .IP o برنامه \fIicm\-exec\fP برای اجرای اسکریپت بایت‌کد کامپایل‌شده \fBicmake\fP؛ .IP o برنامه \fIicm\-multicomp\fP برای کامپایل چندنخی (اختیاری) فایل‌های منبع؛ .IP o برنامه \fIicm\-pp\fP برای پیش‌پردازش اسکریپت \fBicmake\fP؛ .IP o برنامه \fIicm\-spch\fP برای ساختن (اختیاری) یک فایل هدر پیش‌کامپایل‌شده منفرد در سطح کل پروژه (SPCH). .PP علاوه بر برنامه‌های فوق، پروژه \fBicmake\fP موارد زیر را نیز ارائه می‌کند: .IP o برنامه \fBicmodmap\fP که هنگام توسعه برنامه‌های \fIC++\fP با استفاده از ماژول‌ها قابل استفاده است (ر.ک. صفحه راهنمای \fBicmodmap\fP(1))؛ .IP o برنامه \fIicm\-un\fP برای دیس‌اسمبل کردن فایل‌های بایت‌کد کامپایل‌شده \fBicmake\fP (معروف به «\fIbim\-files\fP»). برنامه \fBicm\-un\fP عمدتاً برای نمایش، آموزش و اشکال‌زدایی کاربرد دارد و هنگام مشخص کردن گزینه \fI\-\-unassemble\fP یا \fI\-u\fP توسط \fBicmake\fP فراخوانی می‌شود (همچنین بخش \fBICM\-UN\fP را ببینید). .PP برخی از ابزارهای make به طور پیش‌فرض پس از تغییر فایل‌های هدر، فایل‌های منبع را دوباره کامپایل می‌کنند. هنگام توسعه برنامه‌های \fBC++\fP این کار اغلب لازم نیست، زیرا افزودن توابع عضو جدید به کلاس‌ها لزوماً نیازمند کامپایل مجدد تمام فایل‌های منبع آن کلاس‌ها نیست. وابستگی‌های کلاس‌ها به طور اختیاری توسط \fBicmbuild\fP(1) بررسی می‌شوند (این بررسی زمانی انجام می‌گیرد که دستورهای \fI#define\fP مربوط به \fIUSE_ALL, SPCH\fP و/یا دستور منسوخ‌شده \fIPRECOMP\fP در فایل \fIicmconf\fP فعال باشند؛ برای جزئیات به صفحه راهنمای \fBicmconf\fP(7) مراجعه فرمایید). .PP .SH "ICMAKE V\&. 13\&.00\&.00" .PP در نسخه 13\&.00\&.00 \fBicmake\fP تغییرات زیر نسبت به نسخه 12\&.03\&.00 اعمال شده است: .IP o گزینه \fI\-\-all\fP (\fI\-a\fP) به برنامه \fBicm\-spch\fP اضافه شد که اقدامات گزینه‌های \fI\-\-list, \-\-precompile\fP و \fI\-\-soft\-link\fP آن را به ترتیب انجام می‌دهد. همچنین چند گزینه موجود تغییر یافتند. برای جزئیات بخش \fBICM\-SPCH\fP را ببینید. .IP o هدرهای (داخلی) بررسی‌شده توسط \fIicmake \-\-spch\fP (یا \fI\-S\fP) دیگر دستکاری و ویرایش نمی‌شوند. .IP o جهت حذف مشخصه‌های (اکنون منسوخ‌شده) \fI#ifndef SPCH_\fP از فایل‌های فهرست‌شده در فایل‌های \fIspch\fP موجود که توسط نسخه‌های پیشین \fBicm\-spch\fP نوشته شده بودند، می‌توان از برنامه \fInoifndef\&.cc\fP موجود در زیردایرکتوری \fIsupport/\fP بسته کد منبع \fBicmake\fP برای حذف بخش‌های \fI#ifndef SPCH_\fP از فایل‌های \fI\&.ih\fP پروژه استفاده کرد؛ .IP o گزینه \fBicmake\fP \fI\-\-source\fP اسکریپت \fBicmake\fP را در یک فایل موقت \fI\&.bim\fP کامپایل می‌کند؛ .IP o برنامه کمکی \fIicmun\fP به \fBicm\-un\fP تغییر نام یافت (این برنامه توسط \fBicmake\fP هنگام تعیین گزینه \fI\-\-unassemble\fP (\fI\-u\fP) فراخوانی می‌شود، بنابراین در عمل تغییر نام به طور خودکار مدیریت می‌گردد). .IP o اسکریپت \fBicmconf\fP(7) می‌تواند از \fI\-o\fP در تعریف \fI#define SPCH\fP خود استفاده کند. تمام کلمات (جداشده با فاصله) پس از \fI\-o\fP به عنوان گزینه‌های جداگانه «\fI\-o word\fP» به \fBicm\-spch\fP ارسال می‌شوند؛ .IP o هنگام توسعه برنامه‌های \fBC++\fP، متغیر محیطی \fIICMAKE_CXXFLAGS\fP دیگر استفاده نمی‌شود. در عوض متغیر محیطی \fIICMAKE_CPPSTD\fP به کار می‌رود. از این متغیر محیطی برای تعریف یک نقطه مدیریت واحد جهت مشخص کردن نسخه استاندارد \fBC++\fP مورد استفاده هنگام کامپایل منابع استفاده کنید؛ .IP o هنگام استفاده از دبیان (یا توزیع‌های مشابه)، می‌توان از اسکریپت «rebuild» برای بازسازی باینری‌های icmake پس از نصب «libbobcat\-dev» استفاده کرد که باعث کاهش اندازه آن‌ها تا حدود ۴۰٪ می‌شود. .IP o خود برنامه \fBicmake\fP بازطراحی شد. .PP .SH "گزینه‌ها (OPTIONS)" .PP در صورت وجود، گزینه‌های تک‌حرفی داخل پرانتز در کنار معادل بلند آن‌ها آورده شده‌اند. ابزار \fBIcmake\fP گزینه‌های «عملیاتی» (\fIaction\fP) و «غیرعملیاتی» (\fInon\-action\fP) را تعریف می‌کند. نخستین گزینه عملیاتی که با آن مواجه شود به کار گرفته خواهد شد. .PP هنگام استفاده از \fBicmbuild\fP(1) برای نگهداری و ساخت برنامه، \fBicmake\fP به طور خودکار فراخوانی می‌شود و کاربر نیازی به تعیین هیچ‌یک از گزینه‌های \fBicmake\fP ندارد. .PP .IP o \fB\-\-about\fP (\fB\-a\fP) .br پس از نمایش اطلاعاتی درباره \fBicmake\fP، به اجرای برنامه پایان می‌دهد؛ .IP .IP o \fB\-\-compile\fP (\fB\-c\fP) \fI[options] source [bim\-file]\fP .br اسکریپت \fBicmake\fP ابتدا پیش‌پردازش می‌شود (گزینه \fI\-\-preprocess\fP را در ادامه ببینید) و سپس فایل پیش‌پردازش‌شده توسط \fIicm\-comp\fP کامپایل شده و یک \fIbim\-file\fP تولید می‌کند. اگر نام \fIbim\-file\fP مشخص نشده باشد، نام پایه \fIsource\fP با پسوند \fI\&.bim\fP استفاده می‌شود. .br اگر \fIsource\fP فایلی باشد که از قبل پیش‌پردازش شده است، می‌توان گزینه \fI\-P\fP را برای جلوگیری از پیش‌پردازش مجدد آن مشخص کرد. به عنوان مثال: .nf icmake \-c \-P source dest\&.bim .fi اگر bim\-file وجود داشته باشد و تاریخ ویرایش آن جدیدتر از \fIsource\fP باشد، \fIsource\fP کامپایل نخواهد شد؛ .IP .IP o \fB\-\-dependencies\fP (\fB\-d\fP) \fI[options] action\fP .br برنامه \fBicm\-dep\fP برای تعیین وابستگی‌های میان کلاس‌ها فراخوانی می‌شود. تمامی گزینه‌ها و آرگومان‌های پس از این گزینه به \fBicm\-dep\fP هدایت می‌شوند. برای اطلاعات بیشتر درباره \fIicm\-dep\fP به بخش \fBICM\-DEP\fP در همین صفحه راهنما مراجعه کنید؛ .IP .IP o \fB\-\-execute\fP (\fB\-e\fP) \fI[option] bim\-file [arguments]\fP .br فایل bim را اجرا می‌کند. پیش از تعیین \fIbim\-file\fP می‌توان گزینه \fI\-\-no\-version\-check\fP (در ادامه شرح داده شده، یا گزینه کوتاه معادل \fI\-n\fP) را برای نادیده گرفتن عدم تطابق نسخه اصلی \fBicmake\fP و نسخه‌ای از \fBicmake\fP که برای کامپایل فایل bim استفاده شده است مشخص کرد. .br آرگومان‌های خط فرمان که پس از \fIbim\-file\fP مشخص می‌شوند به عنوان آرگومان به تابع \fImain\fP فایل bim ارسال می‌گردند (برای جزئیات درباره نگارش اسکریپت‌های \fBicmake\fP به صفحه راهنمای \fBicmscript\fP(7) مراجعه فرمایید)؛ .IP .IP o \fB\-\-force\fP (\fB\-f\fP) \fI[options] source [bim\-file]\fP .br مانند گزینه \fI\-\-compile\fP عمل می‌کند، اما کامپایل همیشه انجام می‌شود، حتی اگر فایل bim به‌روز باشد؛ .IP .IP o \fB\-\-help\fP (\fB\-h\fP) .br پس از نمایش اطلاعات نحوه استفاده، به اجرای \fBicmake\fP پایان می‌دهد. در صورتی که \fBicmake\fP بدون هیچ آرگومانی اجرا شود نیز اطلاعات نحوه استفاده نمایش داده می‌شود؛ .IP .IP o \fB\-\-multicomp\fP (\fB\-m\fP) \fI[options] jobs \(cq\&compiler\-spec\(cq\&\fP .br بخش اختیاری \fIoptions\fP گزینه‌هایی هستند که به برنامه \fIicm\-multicomp\fP ارسال می‌شوند (ر.ک. بخش \fBICM\-MULTICOMP\fP در ادامه). .br همچنین به دستور \fI#define MULTICOMP\fP در صفحه راهنمای \fBicmconf\fP(7) مراجعه کنید: در صورت مشخص شدن، کامپایل چندنخی به طور خودکار به کار گرفته می‌شود؛ .IP .IP o \fB\-\-no\-process\fP (\fB\-N\fP) .br به طور ضمنی گزینه \fI\-\-verbose\fP را فعال می‌کند (در ادامه ببینید). این گزینه توسط گزینه‌های \fI\-\-dependencies, \-\-execute, \-\-source\fP و \fI\-t\fP شناسایی می‌شود (چه به صورت دو گزینه جداگانه یا با چسباندن هر دو گزینه به هم مانند \fI\-Ne\fP). در صورت تعیین، برنامه کمکی اجرا نمی‌شود، اما دستور(هایی) که قرار بود اجرا شوند در خروجی استاندارد نمایش داده می‌شوند؛ .IP .IP o \fB\-\-no\-version\-check\fP (\fB\-n\fP) .br این گزینه با گزینه‌های عملیاتی \fI\-\-execute, \-\-source, \-\-unassemble\fP و \fI\-t\fP در دسترس است. هنگام تعیین این گزینه، نسخه اصلی ذخیره‌شده در فایل icm\-bim و نسخه خود \fBicmake\fP می‌توانند با هم متفاوت باشند. به طور معمول نیازی به این گزینه نیست و در درجه اول برای اهداف توسعه اضافه شده است؛ .IP .IP o \fB\-\-preprocess\fP (\fB\-p\fP) \fI[options] source [pim\-file]\fP .br فایل مشخص‌شده به عنوان آرگومان اول پیش‌پردازش شده و یک فایل «\fI\&.pim\fP» تولید می‌کند. اگر نام فایل دومی به عنوان آرگومان ارائه شود، آن فایل تبدیل به فایل \fI\&.pim\fP می‌شود. در صورت عدم تعیین، نام فایل اول با پسوند \fI\&.pim\fP استفاده می‌گردد. .br با این گزینه می‌توان از گزینه‌های تعریف نماد پیش‌پردازنده استفاده کرد: نمادهایی که مقادیر آن‌ها را می‌توان در \fIsource\fP به کار برد. برای مثال، هنگام اجرای دستور: .nf icmake \-p \-d one \-\-define two source dest\&.pim .fi برنامه \fBicmake\fP فایل \fIsource\fP را پیش‌پردازش کرده، نمادهای پیش‌پردازنده \fIone\fP و \fItwo\fP (هر کدام با مقدار ۱) را تعریف می‌کند و فایل pim با نام \fIdest\&.pim\fP را تولید می‌نماید. توجه داشته باشید که به جای گزینه بلند \fI\-\-define\fP می‌توان از گزینه کوتاه \fI\-d\fP نیز استفاده کرد؛ .IP .IP o \fB\-\-spch\fP (\fB\-S\fP) \fI\&.\&.\&.\fP .br یک SPCH ساخته می‌شود. تمام گزینه‌ها و آرگومان‌های پس از \fI\-\-spch\fP به برنامه کمکی \fIicm\-spch\fP هدایت می‌شوند (ر.ک. بخش \fBICM\-SPCH\fP در ادامه). .br همچنین به دستور \fI#define SPCH\fP در صفحه راهنمای \fBicmconf\fP(7) مراجعه کنید: در صورت مشخص شدن، یک SPCH به طور خودکار ساخته می‌شود؛ .IP .IP o \fB\-\-source\fP (\fB\-s\fP) \fI[options] source [arguments]\fP .br برنامه \fBIcmake\fP از \fI\-\-compile\fP برای کامپایل فایل منبع \fBicmake\fP مشخص‌شده در آرگومان اول (و ساخت یک فایل موقت bim) استفاده می‌کند و سپس از \fI\-\-execute\fP برای اجرای فایل bim بهره می‌گیرد و هرگونه \fIarguments\fP بعدی را به عنوان آرگومان به تابع \fImain\fP فایل bim ارسال می‌کند. .br پس از گزینه \fI\-\-source\fP می‌توان گزینه‌های در دسترس برای دستور \fI\-\-compile\fP \fBicmake\fP را مشخص کرد. پس از آن گزینه‌ها نیز می‌توان گزینه‌های \fI\-\-execute\fP را مشخص نمود. این گزینه‌های اخیر باید با \fI\-\-execute\fP یا \fI\-e\fP آغاز شوند. برای مثال، هنگام اجرای دستور: .nf icmake \-s \-d one \-en source .fi برنامه \fBicmake\fP ابتدا \fIsource\fP را پس از تعریف نماد پیش‌پردازنده \fIone\fP کامپایل کرده و سپس فایل bim را با ارسال \fI\-\-no\-version\-check\fP به \fIicm\-exec\fP اجرا می‌کند؛ .IP .IP o \fB\-t\fP \fItmpspec\fP \fI[options] source [arguments]\fP .br این گزینه در درجه اول برای اسکریپت‌های اجرایی \fBicmake\fP در نظر گرفته شده است، اگرچه می‌توان آن را در فراخوانی‌های خط فرمان \fBicmake\fP نیز استفاده کرد. گزینه \fI\-t\fP به روش‌های متعددی قابل استفاده است که در بخش بعدی (\fBاجرای اسکریپت‌های ICMAKE\fP) توضیح داده شده است. .IP .IP o \fB\-\-tmpdir\fP=\fIdirectory\fP (\fB\-T\fP) .br به طور پیش‌فرض فایل‌های موقت در زیردایرکتوری \fI/tmp\fP ایجاد می‌شوند، یا در دایرکتوری خانگی کاربر (\fI${HOME}\fP) اگر \fI/tmp/\fP قابل استفاده نباشد. برای تعیین دایرکتوری دیگر جهت نوشتن فایل‌های موقت، می‌توان از گزینه \fI\-\-tmpdir\fP (یا \fI\-T\fP) \fBicmake\fP به همراه نام یک دایرکتوری (موجود) استفاده کرد. .br به عنوان مثال، هنگام کامپایل یک فایل \fImain\&.im\fP مربوط به \fBicmake\fP، خروجی پیش‌پردازنده در یک فایل موقت نوشته می‌شود که پس از کامپایل حذف می‌گردد. برای نوشتن فایل موقت در \fI~/\&.icmake\fP، دستور \fBicmake\fP می‌تواند به این صورت فراخوانی شود: .nf icmake \-T ~/\&.icmake \-c main\&.im .fi .IP .IP o \fB\-\-unassemble\fP (\fB\-u\fP) .br فایل مشخص‌شده به عنوان آرگومان اول یک فایل bim متعلق به \fBicmake\fP است که دیس‌اسمبل می‌شود (ر.ک. بخش \fBICM\-UN\fP در ادامه برای اطلاعات بیشتر درباره دیس‌اسمبل کردن فایل‌های bim)؛ .IP .IP o \fB\-\-verbose\fP (\fB\-V\fP) .br فرآیندهای فرزند \fBIcmake\fP و آرگومان‌های آن‌ها پیش از فراخوانی در جریان خروجی استاندارد نوشته می‌شوند. این گزینه می‌تواند قبل از گزینه‌های عملیاتی (\fI\-c, \-d, \-e, \-s\fP و \fI\-u\fP) بیاید، چه به صورت دو گزینه جداگانه و چه به صورت پیوسته مانند \fI\-Ve\fP. .IP .IP o \fB\-\-version\fP (\fB\-v\fP) .br پس از نمایش نسخه \fBicmake\fP، به اجرای آن پایان می‌دهد. .PP .SH "اجرای اسکریپت‌های ICMAKE (EXECUTING ICMAKE SCRIPTS)" .PP گزینه \fI\-t\fP در درجه اول برای استفاده در اسکریپت‌های اجرایی \fBicmake\fP فراهم شده است. خط اول اسکریپت‌های اجرایی \fBicmake\fP شامل مؤلفه‌های زیر است: .IP o یک مشخصه شَبنگ (\fIshebang\fP یا \fI#!\fP) و به دنبال آن محل نصب \fBicmake\fP؛ .IP o گزینه \fI\-t\fP به همراه آرگومان آن (در ادامه ببینید)؛ .PP و به صورت اختیاری: .IP o گزینه‌های کامپایل و اجرا (مشخص‌شده همان‌گونه که در گزینه \fI\-\-source\fP شرح داده شد)؛ .IP o یک مؤلفه غیرگزینه‌ای (مانند \fI:\fP) که با مسیر اسکریپت اجرایی \fBicmake\fP جایگزین خواهد شد؛ .IP o مؤلفه‌های باقی‌مانده در خط اول همان‌طور که هستند به تابع \fImain\fP اسکریپت \fBicmake\fP ارسال می‌شوند؛ .PP برای مثال، اسکریپت اجرایی ساده \fIicm\fP زیر با نام «\fIargs\fP» می‌تواند در \fI~/bin\fP تعریف شود: .nf #!/usr/bin/icmake \-t\&. \-d one : two \-\-dir three void main(int argc, list argv) { #ifdef one printf << \(dq\&one is defined\en\(dq\&; #endif printf << argc << \(dq\& arguments: \(dq\& << argv << \(cq\&\en\(cq\&; } .fi هنگامی که این اسکریپت به صورت \fI~/bin/args four five\fP فراخوانی شود، آرگومان‌های \fIfour\fP و \fIfive\fP به آرگومان‌های \fItwo \-\-dir three\fP که از قبل توسط خود اسکریپت مشخص شده‌اند اضافه می‌شوند. در این حالت خروجی اسکریپت به این صورت خواهد بود (آرگومان اول نام یک فایل موقت \fI\&.bim\fP است که در هر بار فراخوانی جدید متفاوت است): .nf one is defined /tmp/F04dgh two \-\-dir three four five .fi .PP آرگومان گزینه \fI\-t\fP برای مشخص کردن محل فایل‌های مورد استفاده گزینه \fI\-t\fP \fBicmake\fP به کار می‌رود (\fI/dir\fP می‌تواند چند دایرکتوری تو در تو مانند \fI/dir/sub1/sub2\fP نیز باشد): .IP o اگر یک نقطه تکی باشد (\fI\-t\&.\fP)، فایل bim کامپایل‌شده (موقت) در دایرکتوری مورد استفاده \fBicmake\fP برای فایل‌های موقت نوشته می‌شود (مثلاً \fI/tmp\fP یا \fI$HOME\fP)؛ .IP o اگر \fI~/dir\fP یا \fI/dir\fP باشد، \fBicmake\fP فایل‌های موقت را در دایرکتوری مشخص‌شده می‌نویسد و علامت \fI~\fP را با دایرکتوری \fI$HOME\fP کاربر جایگزین می‌کند؛ .IP o اگر \fI~/dir/name\fP یا \fI/dir/name\fP باشد، آن‌گاه \fI[~]/dir/name\fP مسیر فایل \fI\&.bim\fP کامپایل‌شده را مشخص می‌کند و تمامی فایل‌های موقت دیگر در همان دایرکتوری فایل \fI\&.bim\fP نوشته می‌شوند. فایل \fI\&.bim\fP پس از اجرا حفظ می‌شود (که اجازه می‌دهد بارها با دستور «\fBicmake\fP \fI\-e\fP» اجرا شود). اگر فایل \fI\&.bim\fP جدیدتر از اسکریپت باشد، اسکریپت \fBicmake\fP مجدداً کامپایل نخواهد شد. .PP .SH "ICM\-DEP" .PP ابزار \fBIcm\-dep\fP یک برنامه کمکی است که توسط \fBicmake\fP \fI\-\-dependencies\fP (یا معادل کوتاه آن \fI\-d\fP) فراخوانی می‌شود تا وابستگی‌های فایل‌های منبع و فایل‌های هدر پیش‌کامپایل‌شده را تعیین کند. .PP هنگام استفاده از \fBicmbuild\fP(1) و در صورتی که فایل \fIicmconf\fP حاوی دستور \fI#define SPCH\fP باشد، از \fBicmake\fP \fI\-d\fP استفاده نمی‌شود؛ در عوض، دایرکتوری‌های بررسی‌شده هنگام استفاده از SPCH به طور خودکار توسط \fBicmake\fP \fI\-S\fP بررسی (و در صورت لزوم به‌روزرسانی) می‌شوند. .PP خلاصه نحوه فراخوانی \fBIcmake\fP \fI\-d\fP عبارت است از: .nf icmake \-d [options] argument .fi مشخصه‌های پس از \fI\-d\fP به \fBicm\-dep\fP هدایت می‌شوند. گزینه‌های زیر می‌توانند پس از \fI\-d\fP تعیین گردند: .IP o \fB\-\-classes\fP=\fIfilename\fP (\fB\-c\fP) .br به طور پیش‌فرض، \fBicm\-dep\fP وابستگی‌های دایرکتوری‌های ذکرشده در فایل \fICLASSES\fP را بررسی می‌کند. اگر فایل \fBicmconf\fP(7) مقادیر \fIPARSER_DIR\fP و/یا \fISCANNER_DIR\fP را مشخص کند، آن دایرکتوری‌ها نیز در نظر گرفته می‌شوند. از این گزینه برای مشخص کردن فایل حاوی نام دایرکتوری‌های مورد بررسی توسط \fBicm\-dep\fP استفاده کنید. .IP .IP o \fB\-\-gch\fP .br اگر فایل \fIicmconf\fP دستور (منسوخ‌شده) \fI#define PRECOMP\fP را مشخص کند، \fBicmake\fP \fI\-d\fP بررسی می‌کند که آیا هدرهای پیش‌کامپایل‌شده باید نوسازی شوند یا خیر. اگر فایل \fIicmconf\fP فاقد دستور \fI#define PRECOMP\fP باشد، اما با این وجود هدرهای پیش‌کامپایل‌شده باید بررسی شوند، می‌توان گزینه \fI\-\-gch\fP را مشخص کرد؛ .IP .IP o \fB\-\-help\fP (\fB\-h\fP) .br خلاصه‌ای از نحوه استفاده \fBicm\-dep\fP در خروجی استاندارد نوشته شده و \fBicmake\fP با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد؛ .IP .IP o \fB\-\-icmconf\fP=\fIfilename\fP (\fB\-i\fP) .br به طور پیش‌فرض \fBicmake\fP \fI\-d\fP محتوای فایل‌های \fIicmconf\fP را بررسی می‌کند. این گزینه زمانی استفاده می‌شود که به جای \fIicmconf\fP فایل دیگری باید بررسی شود؛ .IP .IP o \fB\-\-mainih\fP=\fImainheader\fP (\fB\-m\fP) .br در فایل \fIicmconf\fP، دستور \fI#define IH\fP برای تعیین پسوند فایل‌های هدر کلاسی که باید پیش‌کامپایل شوند به کار می‌رود، با این فرض که نام فایل آن‌ها برابر با نام دایرکتوری‌های فهرست‌شده در فایل \fICLASSES\fP است. اما \fICLASSES\fP نام دایرکتوری سطح بالای برنامه را مشخص نمی‌کند. این گزینه برای تعیین نام فایل هدر سطح بالا جهت پیش‌کامپایل استفاده می‌شود. به طور پیش‌فرض \fImain\&.ih\fP به کار می‌رود؛ .IP .IP o \fB\-\-no\-gch\fP .br اگر یک فایل \fIicmconf\fP حاوی دستور (منسوخ‌شده) \fI#define PRECOMP\fP باشد اما \fBicmake\fP \fI\-d\fP نباید نوسازی هدرهای پیش‌کامپایل‌شده را بررسی کند، گزینه \fI\-\-no\-gch\fP را مشخص کنید؛ .IP .IP o \fB\-\-no\-use\-all\fP .br در صورت تعیین این گزینه، دستور \fI#define USE_ALL \(dq\&filename\(dq\&\fP در فایل \fIicmconf\fP (ر.ک. \fBicmconf\fP(7)) نادیده گرفته می‌شود؛ .IP .IP o \fB\-\-use\-all\fP=\fIfilename\fP .br در صورت تعیین این گزینه، تمام فایل‌های موجود در دایرکتوری‌های حاوی فایل \fIfilename\fP و فایل‌های منبع در دایرکتوری‌هایی که (به صورت بازگشتی) به فایل‌های آن دایرکتوری‌ها وابسته‌اند، دوباره کامپایل می‌شوند؛ .IP .IP o \fB\-\-verbose\fP (\fB\-V\fP) .br این گزینه می‌تواند چندین بار مشخص شود. تعداد دفعات تعیین آن، میزان جزئیات خروجی \fBicmake\fP \fI\-d\fP را مشخص می‌کند. اگر تعیین نشود، \fBicmake\fP \fI\-d\fP وظایف خود را در سکوت انجام می‌دهد. اگر یک بار مشخص شود (که حالت پیش‌فرض است)، اقداماتی را که انجام می‌دهد در خروجی استاندارد می‌نویسد؛ اگر دو بار مشخص شود، گزینه‌های غیرپیش‌فرض و دایرکتوری‌های اضافه شده به طور خودکار را نیز گزارش می‌کند؛ اگر سه بار مشخص شود، وابستگی‌های کلاس‌ها را نیز گزارش می‌دهد؛ و اگر بیشتر از آن مشخص شود، فایل‌هایی را که با آن‌ها مواجه شده و تصمیمی را که در صورت تعیین \fIgo\fP اتخاذ می‌کرد گزارش می‌نماید؛ .IP .IP o \fB\-\-version\fP (\fB\-v\fP) .br دستور \fBIcmake\fP \fI\-d\fP شماره نسخه \fBicm\-dep\fP را در خروجی استاندارد نوشته و با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد. .PP پس از گزینه‌های غیرپایان‌دهنده، آرگومان \fIgo\fP باید مشخص شود تا به \fBicmake\fP \fI\-d\fP اجازه دهد اقدامات خود را اجرا کند. مشخص کردن هر آرگومان دیگری منجر به یک «اجرای آزمایشی» (dry run) می‌شود: وابستگی‌ها را تحلیل می‌کند اما هیچ فایلی را حذف نکرده یا تغییر نمی‌دهد. .PP دستور \fBIcmake\fP \fI\-d\fP می‌تواند برای پروژه‌های نرم‌افزاری توسعه‌یافته بر اساس ساختار ارائه‌شده در C++ Annotations، بخش \fIسازماندهی فایل هدر (Header file organization)\fP در فصل \fIکلاس‌ها (Classes)\fP استفاده شود. در این پروژه‌ها کلاس‌ها در دایرکتوری‌های مستقل خود توسعه می‌یابند که زیردایرکتوری‌های مستقیم دایرکتوری اصلی برنامه هستند. رابط‌های کلاس آن‌ها در فایل‌های هدر کلاسی هم‌نام با دایرکتوری‌های کلاس ارائه می‌شوند، و تمامی هدرهای مورد نیاز منابع کلاس در یک فایل هدر داخلی (\fIinternal header\fP) مجزا اعلام می‌گردند که معمولاً پسوند \fI\&.ih\fP دارد. .PP .SH "ICM\-MULTICOMP" .PP ابزار \fBIcmake\fP از کامپایل چندنخی فایل‌های منبع پشتیبانی می‌کند که اغلب زمان کامپایل فایل‌های منبع پروژه‌ها را به میزان چشمگیری کاهش می‌دهد. هنگام استفاده از \fBicmbuild\fP(1)، در صورتی که فایل‌های \fIicmconf\fP حاوی دستور \fI#define MULTICOMP\fP باشند (ر.ک. \fBicmconf\fP(7))، کامپایل چندنخی به طور خودکار مورد استفاده قرار می‌گیرد. همچنین می‌توان آن را مستقل از \fIicmconf\fP با استفاده از گزینه \fI\-\-multicomp\fP (یا \fI\-m\fP) \fBicmake\fP فراخوانی کرد. .PP خلاصه نحوه فراخوانی \fBIcmake\fP \fI\-m\fP عبارت است از: .nf icmake \-m [options] arguments .fi .PP دستور \fBIcmake\fP \fI\-m\fP گزینه‌های زیر را می‌پذیرد: .IP o \fB\-\-help\fP (\fB\-h\fP) .br دستور \fBIcmake\fP \fI\-m\fP خلاصه‌ای از نحوه استفاده خود را در خروجی استاندارد نوشته و با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد؛ .IP .IP o \fB\-\-nr\fP (\fB\-n\fP) .br هنگام کامپایل فایل‌های منبع و در صورت تعیین گزینه \fI\-\-nr\fP، شماره نخی که در حال کامپایل یک فایل منبع است در جریان خروجی استاندارد نوشته می‌شود. .IP .IP o \fB\-\-quiet\fP (\fB\-q\fP) .br هنگامی که این گزینه مشخص نشود، نام مسیر فایل‌های شیء و منبع کامپایل‌شده در جریان خروجی استاندارد نوشته می‌شود. اگر یک بار مشخص شود، تنها دایرکتوری‌ها و نام فایل‌های منبع در جریان خروجی استاندارد نوشته می‌شوند، و اگر بیش از یک بار مشخص شود، هیچ اطلاعاتی در مورد فایل‌های کامپایل‌شده در جریان خروجی استاندارد نوشته نخواهد شد. .IP .IP o \fB\-\-threads\fP=\fInThreads\fP (\fB\-t\fP) .br به طور پیش‌فرض تعداد هسته‌های پردازنده رایانه تعداد نخ‌های مورد استفاده هنگام کامپایل فایل‌های منبع را تعیین می‌کند. می‌توان تعداد متفاوتی از نخ‌ها را با استفاده از این گزینه درخواست کرد، مثلاً \fI\-\-threads 5\fP. .IP .IP o \fB\-\-version\fP (\fB\-v\fP) .br دستور \fBIcmake\fP \fI\-m\fP شماره نسخه خود را به خروجی استاندارد گزارش کرده و با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد. .PP دستور \fBIcmake\fP \fI\-m\fP به یک آرگومان خط فرمان و یک آرگومان اختیاری دوم نیاز دارد: .IP o آرگومان اول نام فایلی است که مشخص می‌کند کدام فایل‌ها باید کامپایل شوند. از \fBicmbuild\fP(1) برای نوشتن این فایل استفاده کنید. همچنین می‌توان آن را به روش دیگری ساخت: .br فایل مشخص‌شده باید حاوی گروه‌هایی از مشخصات فایل باشد که در آن هر گروه با خطی مانند \fI: support tmp/o 5\fP آغاز می‌شود، که عنصر دوم (در اینجا: \fIsupport\fP) (زیر)دایرکتوری فایل‌های منبع را مشخص می‌کند (از \fI\&.\fP برای اشاره به دایرکتوری سطح بالای پروژه استفاده کنید)؛ عنصر سوم (در اینجا: \fItmp/o\fP) دایرکتوری مقصد فایل‌های کامپایل‌شده را مشخص می‌کند (که در صورت عدم وجود ایجاد می‌شود)؛ و عنصر چهارم (در اینجا: \fI5\fP) پیشوندی را مشخص می‌کند که باید قبل از فایل‌های شیء کامپایل‌شده اضافه شود. .br به دنبال این خط، خطوط باقی‌مانده یک گروه، نام فایل‌های منبع (واقع در (زیر)دایرکتوری مشخص‌شده) را جهت کامپایل تعیین می‌کنند. .br پس از پایان کامپایل (خواه به دلیل کامپایل موفقیت‌آمیز تمام فایل‌ها یا به دلیل شکست یک کامپایل)، فایل مشخصات حذف می‌شود؛ .IP o آرگومان دوم اختیاری است. به طور پیش‌فرض مشخصه زیر استفاده می‌شود (همگی در یک خط): .nf g++ \-c \-o $2 ${ICMAKE_CPPSTD} \-\-Wall \-Werror $1 .fi در اینجا \fI$1\fP با مکان فایل منبع مورد کامپایل و \fI$2\fP با مکان فایل شیء کامپایل‌شده جایگزین می‌شود. اگر متغیر محیطی \fIICMAKE_CPPSTD\fP تعریف شده باشد (که استاندارد \fBC++\fP مورد استفاده را مشخص می‌کند، مثلاً \fIICMAKE_CPPSTD=\-\-std=c++26\fP)، مقدار آن جایگزین \fI${ICMAKE_CPPSTD}\fP در مشخصه می‌شود. .br اگر نتوان از مشخصه کامپایلر پیش‌فرض استفاده کرد، دستور کامپایل فایل‌های منبع را می‌توان به عنوان دومین آرگومان خط فرمان \fBicmake\fP \fI\-m\fP ارائه داد که باید نقل‌قول شود، مانند: .nf \(cq\&g++ \-c \-o $2 \(cq\&${ICMAKE_CPPSTD}\(cq\& \-\-Wall \-Werror $1\(cq\& .fi یا آرگومان دوم خط فرمان می‌تواند به صورت \fIf:file\fP باشد، که در آن \fIfile\fP نام فایلی است که خط اول آن حاوی مشخصه دستور کامپایل فایل‌های منبع است (که باید \fI$1\fP و \fI$2\fP و در صورت تمایل \fI$ICMAKE_CPPSTD\fP را مشخص کند). .br متغیر محیطی \fIPATH\fP برای یافتن کامپایلر به کار می‌رود؛ همچنین می‌توان مسیر مطلق کامپایلر را مشخص نمود. .PP .SH "ICM\-SPCH" .PP هدرهای پیش‌کامپایل‌شده منفرد (SPCH) با استفاده از \fBicmake\fP \fI\-\-spch\fP (یا \fI\-S\fP) در دسترس هستند. .PP خلاصه نحوه فراخوانی \fBIcmake\fP \fI\-S\fP عبارت است از: .nf icmake \-S [options] arguments .fi .PP دستور \fBIcmake\fP \fI\-S\fP گزینه‌های زیر را می‌پذیرد: .IP o \fB\-\-all\fP=\fIfile\fP (\fB\-a\fP) .br فراخوانی متوالی گزینه‌های \fI\-\-list, \-\-precompile\fP و \fI\-\-soft\-links\fP دستور \fBicm\fP \fI\-S\fP (در ادامه شرح داده شده)، که در آن \fIfile\fP توسط گزینه \fI\-\-list\fP نوشته شده و به عنوان آرگومان گزینه‌های \fI\-\-precompile\fP و \fI\-\-soft\-links\fP به کار می‌رود؛ .IP .IP o \fB\-\-classes\fP=\fIfilename\fP (\fB\-c\fP) .br فایل \fIfilename\fP نام فایلی است که حاوی فهرستی از دایرکتوری‌های بررسی‌شده توسط گزینه \fI\-\-list\fP است (به طور پیش‌فرض CLASSES). دایرکتوری سطح بالای پروژه به طور خودکار بررسی می‌شود مگر اینکه گزینه \fI\-\-no\-topdir\fP مشخص شده باشد؛ .IP .IP o \fB\-\-help\fP (\fB\-h\fP) .br دستور \fBIcmake\fP \fI\-S\fP خلاصه‌ای از نحوه استفاده خود را در خروجی استاندارد نوشته و با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد؛ .IP .IP o \fB\-\-internal\fP=\fI\&.ext\fP (\fB\-i\fP) .br مقدار \fI\&.ext\fP پسوند مورد استفاده برای هدرهای داخلی است (شامل نقطه). به طور پیش‌فرض \fI\&.ih\fP استفاده می‌شود؛ .IP .IP o \fB\-\-list\fP (\fB\-l\fP) .br در صورت تعیین گزینه \fI\-\-all\fP نادیده گرفته می‌شود. .br نوشتن نام فایل‌هایی که باید هنگام ساخت SPCH پردازش شوند در فایلی که به عنوان اولین آرگومان خط فرمان \fBicmake\fP \fI\-S\fP مشخص شده است. نام فایل مشخص‌شده نباید پسوند یا مشخصات دایرکتوری داشته باشد (مثلاً \fIspch\fP)؛ .IP .IP o \fB\-\-no\-topdir\fP (\fB\-n\fP) .br نادیده گرفتن هدر داخلی یافت‌شده در دایرکتوری سطح بالای پروژه. این گزینه برای مثال زمانی استفاده می‌شود که صرفاً یک کتابخانه ساخته می‌شود نه یک برنامه کامل؛ .IP .IP o \fB\-\-precompile\fP=\fIfile\fP (\fB\-p\fP) .br پیش‌کامپایل کردن \fIfile\fP (نام فایل مشخص‌شده در گزینه \fI\-\-list\fP) به فایل SPCH مشخص‌شده به عنوان آرگومان اول خط فرمان \fBicmake\fP \fI\-S\fP. اگر آن آرگومان به \fI/\fP ختم شود، SPCH با نام \fI\(cq\&argument\(cq\&file\&.gch\fP نوشته می‌شود. .br به طور پیش‌فرض، SPCH با دستور زیر ساخته می‌شود (همگی در یک خط): .nf g++ \-c \-o $2 ${ICMAKE_CPPSTD} \-Wall \-Werror \-O2 \-x c++\-header $1 .fi در اینجا $1 با نام فایل («file») و $2 با نام SPCH جایگزین می‌شود، در حالی که \fI$ICMAKE_CPPSTD\fP به مقدار متغیر محیطی \fIICMAKE_CPPSTD\fP اشاره دارد (که استاندارد \fBC++\fP مورد استفاده را تعیین می‌کند، مثلاً ICMAKE_CPPSTD=\-\-std=c++26). .br همچنین، دستور ساخت SPCH می‌تواند به عنوان آرگومان دوم خط فرمان ارائه شود که باید نقل‌قول شود، مانند: .nf \(cq\&g++ \-c \-o $2 \(cq\&${ICMAKE_CPPSTD}\(cq\& \-Wall \-Werror \-O2 \-x c++\-header $1\(cq\& .fi یا آرگومان دوم خط فرمان می‌تواند به صورت \fIf:file\fP باشد، که در آن \fIfile\fP نام فایلی است که خط اول آن دستور ساخت SPCH را مشخص می‌کند (که باید \fI$1\fP و \fI$2\fP و در صورت تمایل \fI$ICMAKE_CPPSTD\fP را مشخص کند). .br متغیر محیطی \fIPATH\fP برای یافتن کامپایلر استفاده می‌شود؛ مسیر مطلق کامپایلر نیز قابل استفاده است. .IP .IP o \fB\-\-soft\-links\fP=\fIfile\fP (\fB\-s\fP) .br در صورت تعیین گزینه \fI\-\-all\fP نادیده گرفته می‌شود. .br این گزینه از همان آرگومان‌های مورد استفاده در گزینه \fI\-\-precompile\fP استفاده می‌کند. این گزینه پیوندهای نمادین \fI\&.gch\fP را از فایل‌های هدر فهرست‌شده در \fIfile\fP به فایل SPCH تولیدشده ایجاد می‌نماید؛ .IP .IP o \fB\-\-unused\fP=\fIregex\fP (\fB\-u\fP) .br در عمل احتمالاً نیازی به این گزینه نیست، اما فایل‌های منطبق با عبارت باقاعده (POSIX extended) \fIregex\fP توسط \fBicmake\fP \fI\-S\fP بررسی نمی‌شوند. در صورت استفاده می‌توان از مشخصاتی مانند \fI(\&.\&.\&.)|(\&.\&.\&.)\fP برای تعیین چند عبارت باقاعده استفاده کرد. همچنین می‌توان از \fIf:file\fP به عنوان آرگومان گزینه برای تعیین فایلی که خطوط غیرخالی آن حاوی عبارات باقاعده هستند بهره برد؛ .IP .IP o \fB\-\-version\fP (\fB\-v\fP) .br دستور \fBIcmake\fP \fI\-S\fP شماره نسخه خود را در خروجی استاندارد نوشته و با بازگرداندن مقدار 0 به سیستم‌عامل پایان می‌یابد؛ .IP .IP o \fB\-\-warn\fP (\fB\-w\fP) .br هنگامی که فایل‌های هدر موجود در شرف تغییر هستند، به صورت تعاملی هشدار داده و تغییرات را می‌پذیرد یا رد می‌کند. در صورت رد کردن، \fBicm\-spch\fP پایان می‌یابد. .PP دستور \fBIcmake\fP \fI\-S\fP به یک و در صورت تمایل دو آرگومان نیاز دارد که در توضیحات گزینه‌های \fI\-\-list, \-\-precompile\fP و \fIsoft\-links\fP شرح داده شدند. .PP هدرهای پیش‌کامپایل‌شده مدت‌هاست که در دسترس هستند و معمولاً منجر به کاهش چشمگیر زمان کامپایل می‌شوند. استفاده از هدرهای پیش‌کامپایل‌شده منفرد در مقایسه با هدرهای پیش‌کامپایل‌شده برای دایرکتوری‌های جداگانه، فضای دیسک مورد نیاز را بسیار کاهش می‌دهد. .PP هنگام استفاده از SPCHها، از ساخت هدرهای پیش‌کامپایل‌شده تقریباً یکسان برای دایرکتوری‌های مجزا جلوگیری می‌شود: تنها یک هدر پیش‌کامپایل‌شده ساخته می‌شود که سپس توسط تمامی مؤلفه‌های پروژه استفاده می‌گردد. از آنجا که از بخش‌های تکراری اجتناب می‌شود، اندازه (و زمان ساخت) SPCHها بسیار کمتر است و معمولاً تنها به ۵ تا ۱۰ درصد فضا (و زمان ساخت) نسبت به هدرهای پیش‌کامپایل‌شده مجزا نیاز دارد. .PP هدرهای SPCH به راحتی در ترکیب با \fBicmbuild\fP(1) قابل استفاده هستند. اغلب یک مشخصه در فایل \fIicmconf\fP پروژه مانند \fI#define SPCH \(dq\&\(dq\&\fP تمام چیزی است که لازم است (ر.ک. \fBicmconf\fP(7)). .PP .SH "ICM\-UN" .PP برنامه کمکی \fBicm\-un\fP توسط \fBicmake\fP \fI\-u\fP فراخوانی می‌شود و انتظار یک آرگومان، یعنی یک فایل bim را دارد. این برنامه فایل باینری را دیس‌اسمبل کرده و دستورالعمل‌های اسمبلی و ساختار فایل bim را نمایش می‌دهد. .PP به عنوان مثال، فرض کنید اسکریپت زیر با دستور \fIicmake \-c demo\&.im\fP کامپایل شده است: .nf void main() { printf << \(dq\&hello world\en\(dq\&; } .fi فایل حاصل به نام \fIdemo\&.bim\fP با دستور \fBicmake\fP \fI\-u demo\&.bim\fP دیس‌اسمبل شده و موارد زیر را در جریان خروجی استاندارد می‌نویسد: .nf icm\-un by Frank B\&. Brokken (f\&.b\&.brokken@rug\&.nl) icm\-un V12\&.04\&.00 Copyright (c) GPL 1992\-2024\&. NO WARRANTY\&. Binary file statistics: strings at offset 0x0025 variables at offset 0x0033 filename at offset 0x0033 code at offset 0x0014 first opcode at offset 0x0021 String constants dump: [0025 (0000)] \(dq\&\(dq\& [0026 (0001)] \(dq\&hello world\&.\(dq\& Disassembled code: [0014] 06 01 00 push string \(dq\&hello world\&.\(dq\& [0017] 05 01 00 push int 0001 [001a] 1b 1d callrss 1d (printf) [001c] 1c 02 add sp, 02 [001e] 04 push int 0 [001f] 24 pop reg [0020] 23 ret [0021] 21 14 00 call [0014] [0024] 1d exit .fi .PP آفست‌ها با استفاده از دستگاه اعداد هگزادسیمال نمایش داده می‌شوند و آفست‌های بایتی مطلق درون فایل bim هستند. روگرفت (dump) ثوابت رشته‌ای همچنین در داخل پرانتز، آفست‌های رشته‌های منفرد را نسبت به ابتدای بخش رشته‌ها نشان می‌دهد. خروجی همچنین کدهای عملیاتی (opcodes) دستورالعمل‌های فایل‌های منبع \fI\&.im\fP کامپایل‌شده را نمایش می‌دهد. اگر آپ‌کدها از آرگومان‌ها استفاده کنند، مقادیر این آرگومان‌ها پس از آپ‌کد آن‌ها نمایش داده می‌شود. هر خط آپ‌کد با نمایش نماد یادافزا (mnemonic) آپ‌کد به اضافه (در صورت وجود) ماهیت آرگومان آن خاتمه می‌یابد. .PP .SH "فایل‌ها (FILES)" .PP مسیرهای ذکرشده مواردی هستند که در بسته کد منبع به کار رفته و توسط توزیع دبیان لینوکس استفاده می‌شوند. با این حال، این مسیرها صرفاً پیشنهادی هستند و ممکن است به طور متفاوتی پیکربندی شده باشند: .PP برنامه‌های باینری: .IP o \fB/usr/bin/icmake\fP: برنامه اصلی \fBicmake\fP؛ .IP o \fB/usr/bin/icmbuild\fP: برنامه پوششی پیرامون اسکریپت \fIicmbuild\fP که نگهداری استاندارد برنامه‌ها را مدیریت می‌کند؛ .IP o \fB/usr/bin/icmodmap\fP: نگاشت‌دهنده ماژول که نگهداری برنامه‌های \fBC++\fP مبتنی بر ماژول را مقداردهی اولیه می‌کند؛ .IP o \fB/usr/bin/icmstart\fP: یک اسکریپت \fBicmake\fP که می‌تواند برای ایجاد فایل‌های راه‌اندازی پروژه‌های جدید استفاده شود؛ .PP برنامه‌های کمکی: .PP .IP o \fB/usr/libexec/icmake/icm\-comp\fP: کامپایلر فراخوانی‌شده توسط \fBicmake\fP؛ .IP o \fB/usr/libexec/icmake/icm\-dep\fP: برنامه کمکی مدیریت وابستگی‌های کلاس؛ .IP o \fB/usr/libexec/icmake/icm\-exec\fP: مفسر بایت‌کد؛ .IP o \fB/usr/libexec/icmake/icm\-multicomp\fP: کامپایلر چندنخی فایل‌های منبع؛ .IP o \fB/usr/libexec/icmake/icm\-pp\fP: پیش‌پردازنده فراخوانی‌شده توسط \fBicmake\fP؛ .IP o \fB/usr/libexec/icmake/icm\-spch\fP: برنامه آماده‌سازی SPCHها؛ .IP o \fB/usr/libexec/icmake/icm\-un\fP: دیس‌اسمبلر \fBicmake\fP. .PP .SH "مثال‌ها (EXAMPLES)" .PP بسته توزیع (معمولاً در \fI/usr/share/doc/icmake\fP) حاوی یک دایرکتوری \fIexamples\fP شامل نمونه‌های تکمیلی اسکریپت‌های \fBicmake\fP است. اسکریپت \fIicmstart\fP خود یک اسکریپت \fBicmake\fP است، همانند \fI/usr/libexec/icmake/icmbuild\fP که توسط برنامه \fI/usr/bin/icmbuild\fP فراخوانی می‌شود. همچنین بخش \fBمثال‌ها (EXAMPLES)\fP را در صفحه راهنمای \fBicmscript\fP(7) ببینید. .PP .SH "همچنین ببینید (SEE ALSO)" \fBchmod\fP(1), \fBicmbuild\fP(1), \fBicmconf\fP(7), \fBicmodmap\fP(1), \fBicmscript\fP(7), \fBicmstart\fP(1), \fBicmstart\&.rc\fP(7), \fBmake\fP(1) .PP .SH "گزارش باگ‌ها (BUGS)" .PP گزارش نشده است\&. .PP .SH "حق نشر (COPYRIGHT)" این نرم‌افزار آزاد است که تحت شرایط مجوز عمومی همگانی گنو (GPL) توزیع شده است\&. .PP .SH "نویسندگان (AUTHORS)" Frank B\&. Brokken (\fBf\&.b\&.brokken@rug\&.nl\fP)\&. .PP