icmstart(1) شروع نگهداری برنامه با icmbuild icmstart(1)

icmstart - یک اسکریپت راه‌اندازی برای نگهداری برنامه با icmbuild

icmstart [گزینه‌ها] top-dir [program|library]

اگرچه اسکریپت‌های icmake را می‌توان برای مدیریت نگهداری برنامه از ابتدا نوشت، اما اقدامات مورد نیاز اغلب بسیار مشابه‌اند. این مشاهده منجر به ساخت دو ابزار icmake شد: icmstart(1) که دایرکتوری را برای توسعهٔ برنامه مقداردهی اولیه می‌کند، و icmbuild(1) که نگهداری واقعی برنامه را انجام می‌دهد. هر دوی آن‌ها به صورت از پیش‌تعریف‌شده همراه با توزیع icmake برای راه‌اندازی و نگهداری برنامه‌های C++ (یا پس از اندکی تغییر، برنامه‌های C) ارائه می‌شوند. آن‌ها همچنین می‌توانند به سادگی برای سایر زبان‌های برنامه‌نویسی سفارشی‌سازی شوند. اسکریپت icmstart و برنامهٔ icmbuild را می‌توان مستقیماً فراخوانی کرد: icmstart یک اسکریپت icmake است که شل فرمان برای آن icmake را صدا می‌زند؛ icmbuild یک برنامهٔ کوچک C++ است که icmake را فراخوانی می‌کند تا اسکریپت icmbuild را در (معمولاً) /usr/libexec/icmake پردازش کند.

این صفحهٔ راهنما icmstart را پوشش می‌دهد؛ برای کسب اطلاعات دربارهٔ نحوهٔ استفاده از icmbuild به صفحهٔ راهنمای icmbuild(1) مراجعه کنید.

اسکریپت icmstart یک اسکریپت عمومی است که برای مقداردهی اولیهٔ یک دایرکتوری با مجموعه‌ای از فایل‌های پایه که معمولاً در توسعهٔ برنامه‌های C++ یا C به کار می‌روند، استفاده می‌شود.

دستور Icmstart یک دایرکتوری اولیه (که در اینجا `top-dir’ نامیده شده) ایجاد کرده و فایل‌های CLASSES، VERSION و icmconf را درون top-dir نصب می‌کند. یک آرگومان دوم به صورت `program’ یا `library’ می‌تواند به عنوان حالت عملیاتی پیش‌فرض اسکریپت icmbuild(1) مشخص شود، که معمولاً به اضافه شدن فایل‌های منبع اسکلت (skeleton) بیشتری می‌انجامد. اگر مجموعه فایل‌های از پیش‌تعریف‌شده پاسخگوی نیاز شما نیست، مجموعهٔ پیش‌فرض را می‌توان به راحتی تغییر داد. مجموعهٔ پیش‌فرض فایل‌های اسکلت در فایل /etc/icmake/icmstart.rc فهرست شده است. برای کسب اطلاعات دربارهٔ ساختار این فایل و چگونگی تطبیق آن به صفحهٔ راهنمای icmstart.rc(7) مراجعه کنید.

پس از رفتن به دایرکتوری ایجادشده توسط icmstart، می‌توان از icmbuild(1) برای نگهداری برنامه استفاده کرد.

دستور Icmstart از گزینه‌های زیر پشتیبانی می‌کند که (در صورت تعیین) باید نخستین آرگومان‌های icmstart باشند:

-b
نصب پایه: فایل‌های VERSION، usage.cc و version.cc نصب نمی‌شوند و مدخل #define USE_VERSION در icmconf کامنت می‌شود؛
-c confpath
استفاده از فایل‌های پیکربندی (icmstart.rc، AUTHOR، YEARS و VERSION) در صورت وجود در `confpath’، به‌جای استفاده از فایل‌های موجود در ~/.icmake یا /etc/icmake/. به محض یافتن یک فایل از آن استفاده می‌شود که امکان بازنویسی جزئی فایل‌های پیش‌فرضِ ارائه‌شده توسط icmake(1) را فراهم می‌کند؛
-d
هیچ دستوری را اجرا نکن، اما دستوراتی را که قرار بود اجرا شوند در خروجی استاندارد نمایش بده؛
-I
فایل‌ها را نصب نکن؛
-r
جایگزینی بدون قید و شرط فایل‌های موجود. اگر -r مشخص نشود، icmstart از کاربر برای بازنویسی فایل‌های موجود تایید می‌گیرد. اگر مشخصات اسکلت به یک دایرکتوری اشاره کند، کل دایرکتوری و زیردایرکتوری‌های آن جایگزین می‌شوند؛
-s skeleton-path
به طور پیش‌فرض، فایل‌های اسکلت در فایل منبع اسکلت /usr/share/icmake/icmstart.rc فهرست شده‌اند. از طرف دیگر، فایل منبع اسکلت را می‌توان با متغیر محیطی ICM مشخص کرد، که آن هم به نوبهٔ خود می‌تواند با مسیر مشخص‌شده توسط گزینهٔ -s لغو شود. مسیر اسکلت را می‌توان به صورت یک مسیر کامل فایل یا یک دایرکتوری مشخص کرد، که در حالت دوم فرض می‌شود فایل منبع اسکلت icmstart.rc است (به بخش فایل‌های اسکلت (SKELETON FILES) در ادامه مراجعه کنید). از آنجا که icmstart برای نصب فایل‌ها از cp استفاده می‌کند، هنگامی که icmstart باید فایل‌های اسکلت را نصب کند، cp باید در دسترس باشد.

فایل‌های منبع اسکلت می‌توانند حاوی کامنت (خطوط خالی و خطوطی که با علامت هش (#) آغاز می‌شوند) باشند. خطوط کامنت نادیده گرفته می‌شوند. در غیر این صورت، خطوط باید حاوی مشخصات منابع (s) برای نصب باشند.

فایل مشخصات منبع پیش‌فرض /etc/icmake/icmstart.rc است، شامل:

CLASSES
icmconf
P main.cc 
P main.ih 
P usage.cc
P version.cc
P ? scanner 
P ? parser  
این فایل با ~/.icmake/icmstart.rc بازنویسی می‌شود. دایرکتوری ~/.icmake (که در ادامه `دایرکتوری پیکربندی’ نامیده می‌شود) را می‌توان با دستور سیستمی زیر آماده کرد:
cp -r /etc/icmake ~/.icmake
این دایرکتوری همچنین می‌تواند شامل فایل‌های اسکلت باشد. فایل‌های اسکلت پیش‌فرض معمولاً در /usr/share/icmake یافت می‌شوند و می‌توان آن‌ها را در دایرکتوری پیکربندی کپی کرد و توسط فایل icmstart.rc در دایرکتوری پیکربندی به آن‌ها ارجاع داد. برای جزئیات بیشتر دربارهٔ نحوهٔ ارجاع به فایل‌های اسکلت در icmstart.rc به icmstart.rc(7) مراجعه کنید.

فایل‌های پیکربندی icmstart.rc، AUTHOR، YEARS و VERSION به عنوان فایل‌های اسکلت شناخته شده و در صورت موجود بودن، توسط icmstart پردازش می‌شوند.

اگر گزینهٔ -c مشخص شده باشد، فایل‌های پیکربندی یافت‌شده در مسیر مشخص‌شده با این گزینه استفاده می‌شوند. اگر مشخص نشده باشد یا فایلی پیدا نشود، مسیر ~/icmake بررسی می‌شود. اگر یک فایل پیکربندی در ~/icmake نیز پیدا نشود، از فایل‌های پیکربندی موجود در /etc/icmake استفاده خواهد شد.

فایل‌های پیکربندی اختیاری هستند؛ در صورت نبود آن‌ها باز هم می‌توان از icmstart استفاده کرد، اما معمولاً حداقل icmstart.rc ارائه می‌شود.

علاوه بر icstart.rc، تعریف فایل‌های AUTHOR، VERSION و YEARS را در دایرکتوری پیکربندی مد نظر داشته باشید:

اگر فایل AUTHOR وجود داشته باشد باید شامل یک خط باشد که نویسندهٔ برنامه را مشخص می‌کند؛ مثلاً:
#define AUTHOR "Frank B. Brokken <f.b.brokken@rug.nl>"
در صورت عدم وجود، icmstart از مقدار پیش‌فرض استفاده می‌کند:
#define AUTHOR "".
اگر فایل VERSION وجود داشته باشد باید شامل یک خط باشد که نسخهٔ برنامه را تعریف می‌کند؛ مثلاً:
#define VERSION "1.00.00"
در صورت عدم وجود، icmstart از مقدار پیش‌فرض استفاده می‌کند:
#define VERSION "0.01.00".
اگر فایل YEARS وجود داشته باشد باید شامل یک خط باشد که سال انتشار اولیهٔ برنامه یا بازه‌ای از سال‌های انتشار را مشخص می‌کند؛ مثلاً:
#define YEARS "2024"
یا می‌توان بازه‌ای از سال‌ها را تعریف کرد:
#define YEARS "1992-2024"
در صورت عدم وجود، icmstart از مقدار پیش‌فرض استفاده می‌کند:
#define YEARS "yyyy" که در آن yyyy سال جاری است.

تعاریف AUTHOR، VERSION و YEARS در یک فایل به نام VERSION ترکیب شده و در دایرکتوری سطح بالا نصب می‌شوند.

اگر فایل icmstart.rc وجود نداشته باشد (یا خالی باشد)، icmstart تنها دایرکتوری سطح بالا، icmconf و VERSION را نصب می‌کند.

مسیرهای ذکرشده صرفاً پیشنهادی هستند و ممکن است بسته به نوع نصب متفاوت باشند:

/usr/share/icmake/icmconf نمونه‌ای از یک فایل پیکربندی icmbuild؛
/usr/share/icmake/CLASSES نمونه‌ای از یک فایل CLASSES برای icmbuild.
/etc/icmake/icmstart.rc فایل منبع اسکلت پیش‌فرض.

icmake(1), icmbuild(1), icmconf(7), icmstart.rc(7).

نام‌های مسیری که شامل فاصله باشند پشتیبانی نمی‌شوند.

این یک نرم‌افزار آزاد است که تحت شرایط «پروانه عمومی همگانی گنو» (GPL) توزیع می‌شود.

Frank B. Brokken (f.b.brokken@rug.nl).

1992-2025 icmake.13.00.03