autogen(1) دستورات کاربر autogen(1)

autogen - ابزار خودکارسازی و تولید خودکار فایل‌های متنی و کدهای برنامه‌نویسی بر اساس قالب

autogen [-flags] [-flag [value]] [--option-name[[=| ]value]] [ <def-file> ]

برنامهٔ AutoGen فایل‌های متنی را با استفاده از تعاریف خارجی از روی قالب‌ها ایجاد می‌کند.

برنامهٔ AutoGen برای تولید فایل‌های برنامه‌نویسی حاوی متن‌های تکراری با جایگذاری‌های گوناگون طراحی شده است. هدف، ساده‌سازی نگهداری برنامه‌هایی است که شامل مقادیر زیادی از متن‌های تکراری هستند. این امر به‌ویژه زمانی بسیار ارزشمند است که چندین بلوک از چنین متن‌هایی وجود داشته باشد که باید با یکدیگر هماهنگ و همگام بمانند.

یک نمونه رایج، مسئله نگهداری کدهای مورد نیاز برای پردازش گزینه‌های برنامه است. پردازش گزینه‌ها مستلزم حفظ حداقل چهار ساختار مختلف به ترتیب مناسب در بخش‌های مختلف برنامه شما است. شما حداقل به موارد زیر نیاز دارید: نویسه فلگ در رشته فلگ‌ها، کد مربوط به پردازش فلگ در زمان مواجهه با آن، یک یا دو متغیر وضعیت سراسری، و یک خط در متن راهنمای استفاده (usage). اگر بخواهید نام‌های طولانی گزینه‌ها، پردازش فایل پیکربندی، متغیرهای محیطی و موارد دیگر را پیاده‌سازی کنید، به امکانات بیشتری فراتر از این نیاز خواهید داشت.

تمامی این کارها را می‌توان به صورت مکانیکی؛ با استفاده از قالب‌های مناسب و این برنامه انجام داد.


جستجو برای قالب‌ها در DIR. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

افزودن یک دایرکتوری به فهرست دایرکتوری‌هایی که autogen هنگام باز کردن یک قالب، چه به عنوان قالب اصلی و چه قالب درج‌شده (included)، در آن‌ها جستجو می‌کند. آخرین مورد اضافه شده بالاترین اولویت را در فهرست جستجو دارد؛ به این معنا که جستجو به ترتیب معکوس انجام می‌شود.


استفاده از TPL-FILE برای قالب. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

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


خواندن تعاریف از FILE. شکل no-definitions این گزینه را غیرفعال می‌کند. این گزینه به صورت پیش‌فرض فعال است. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

از این آرگومان برای مشخص کردن فایل تعاریف ورودی با یک گزینه خط فرمان استفاده کنید. اگر این گزینه را مشخص نکنید، باید یک آرگومان خط فرمان وجود داشته باشد که فایل را مشخص کند، حتی اگر فقط برای تعیین ورودی استاندارد (stdin) با یک خط تیره (-) باشد. زمانی که می‌خواهید یک قالب را بدون هیچ تعریف فعال AutoGen پردازش کنید، --no-definitions را مشخص کنید.


نام یا مسیر شل (shell) مورد استفاده.

به‌طور پیش‌فرض، هنگام ساخت AutoGen، پیکربندی سیستم برای یافتن یک شل معقول شبیه به Bourne جهت پردازش اسکریپت‌های شل بررسی می‌شود. اگر یک قالب خاص به شل دیگری نیاز دارد، باید با این گزینه در خط فرمان، با متغیر محیطی (SHELL) یا در فایل پیکربندی/مقداردهی اولیه مشخص شود.


عدم استفاده از جریان‌های درون‌حافظه‌ای (in-mem streams).

اگر کتابخانه محلی C از "fopencookie(3GNU)" یا "funopen(3BSD)" پشتیبانی کند، در این صورت AutoGen ترجیح می‌دهد به جای فایل‌های ناشناس (anonymous) از باز کردن بافرهای جریان در حافظه استفاده کند. اگر کمبود حافظه مجازی وجود داشته باشد، این ممکن است به مشکلاتی منجر شود. اگر برای یک کاربرد خاص با کمبود حافظه مواجه شدید، این گزینه را مشخص کنید. این امر در یک محیط مدرن با حافظه مجازی ۶۴ بیتی بعید است.

در پلتفرم‌های فاقد این توابع، این گزینه پذیرفته شده اما نادیده گرفته می‌شود. تابع fmemopen(POSIX) کافی نیست زیرا بافر رشته‌ای آن قابل تخصیص مجدد (reallocatable) نیست. همچنین open_memstream(POSIX) نیز کافی نیست زیرا جریان فقط برای خروجی باز می‌شود. AutoGen به یک بافر با قابلیت تخصیص مجدد نیاز دارد که هم برای خواندن و هم نوشتن در دسترس باشد.


نویسه‌هایی که معادل در نظر گرفته می‌شوند. مقدار پیش‌فرض char-list برای این گزینه عبارت است از:
_-^

این گزینه فهرست نویسه‌هایی را که معادل در نظر گرفته می‌شوند تغییر می‌دهد. مقدار پیش‌فرض سه نویسه "_-^" است. (نویسه آخر در سیستم‌های Tandem/HP-NonStop مرسوم است و من قبلاً کارهای زیادی روی Tandem انجام می‌دادم.)


مشخص کردن NAME به عنوان نام پایه برای خروجی. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

یک قالب ممکن است نام دقیق فایل خروجی را مشخص کند. به طور معمول چنین نیست. در عوض، نام از نام پایه فایل تعاریف همراه با پسوندهای الحاق‌شده تشکیل می‌شود. این گزینه نام پایه مشتق‌شده از نام فایل تعاریف را لغو می‌کند. این امر در صورت نبود فایل تعاریف الزامی است و در صورتی که تعاریف از ورودی استاندارد (stdin) خوانده می‌شوند، توصیه می‌شود. اگر تعاریف از ورودی استاندارد خوانده شوند، نام پایه به طور پیش‌فرض stdin خواهد بود. هرگونه بخش‌های مربوط به دایرکتوری در ابتدای نام بدون اخطار حذف خواهند شد. اگر می‌خواهید فایل خروجی در یک دایرکتوری خاص ظاهر شود، توصیه می‌شود ابتدا به آن دایرکتوری "cd" کنید یا از نام دایرکتوری‌ها در مشخصات قالب برای فهرست‌های پسوند خروجی استفاده نمایید، به ماکروی شبه (pseudo macro) مراجعه کنید.


تنظیم زمان‌های تغییر بر اساس جدیدترین منبع. شکل no-source-time این گزینه را غیرفعال می‌کند.

اگر فایل‌های خروجی خود را با خروجی ماکروی DNE نشانه‌گذاری زمانی (stamp) کنید، فایل‌های خروجی شما همیشه متفاوت خواهند بود، حتی اگر محتوا واقعاً تغییر نکرده باشد. اگر از این گزینه استفاده کنید، زمان تغییر فایل‌های خروجی تنها در صورتی تغییر می‌کند که فایل‌های ورودی تغییر کرده باشند. این به کاهش ساخت‌های (builds) غیرضروری کمک می‌کند.


مجاز کردن قابلیت نوشتن برای فایل‌های خروجی. شکل not-writable این گزینه را غیرفعال می‌کند.

این گزینه فایل‌های خروجی را قابل نوشتن (writable) باقی می‌گذارد. به طور معمول، فایل‌های خروجی فقط‌خواندنی هستند.

آن‌ها محدودیت‌هایی را مشخص می‌کنند که مانع از طولانی شدن بیش از حد قالب یا تولید خروجی بیشتر از حد انتظار می‌شوند.


محدودیت روی حلقه‌های افزایشی. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار lim محدود به موارد زیر است:
دقیقاً -1، یا
در محدوده 1 تا 0x1000000

مقدار پیش‌فرض lim برای این گزینه عبارت است از:
256

این گزینه از حلقه‌های بی‌پایان جلوگیری می‌کند. به عنوان مثال، اگر به طور تصادفی عبارت "FOR x (for-from 1) (for-to -1) (for-by 1)" را مشخص کنید، زمان زیادی طول می‌کشد تا تمام شود. اگر بیش از ۲۵۶ مدخل در جداول دارید، باید با این گزینه محدودیت جدیدی را تعیین کنید.


محدود کردن عملیات شل سرور به SECONDS ثانیه. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار seconds محدود به موارد زیر است:
در محدوده 0 تا 3600

برنامهٔ AutoGen با یک فرایند شل سرور کار می‌کند. بیشتر دستورات عادی در کمتر از ۱۰ ثانیه کامل می‌شوند. با این حال، اگر دستورات شما به زمان بیشتری از این نیاز دارند، از این گزینه استفاده کنید.

محدوده معتبر ۰ تا ۳۶۰۰ ثانیه (۱ ساعت) است. مقدار صفر محدودیت زمانی سرور را غیرفعال می‌کند.


سطح جزئیات ردگیری (tracing). این گزینه یک کلمه کلیدی را به عنوان آرگومان دریافت می‌کند. این آرگومان یک مقدار شمارشی (enumeration) را تنظیم می‌کند که با مقایسه با ماکروی مقدار گزینه قابل آزمایش است. کلمات کلیدی موجود عبارتند از:
nothing       debug-message server-shell
templates     block-macros  expressions
everything
یا معادل عددی آن‌ها.

مقدار پیش‌فرض level برای این گزینه عبارت است از:
nothing

این گزینه باعث می‌شود AutoGen ردگیری از پردازش قالب خود را نمایش دهد. شش سطح وجود دارد که هر سطح شامل پیام‌های سطوح قبلی نیز می‌شود:

nothing هیچ‌گونه ردگیری انجام نمی‌دهد (پیش‌فرض)

debug-message پیام‌ها را از ماکروی "DEBUG" در AutoGen چاپ می‌کند (به DEBUG مراجعه کنید).

server-shell تمام ورودی‌ها و خروجی‌ها به شل سرور را ردگیری می‌کند. این شامل یک اسکریپت مقداردهی اولیه "مستقل" شل به طول حدود ۳۰ خط است. خروجی آن دور ریخته می‌شود و در هیچ قالبی درج نمی‌گردد.

templates فراخوانی ماکروهای تعریف‌شده با DEFINE و ماکروهای INCLUDE را ردگیری می‌کند.

block-macros تمام ماکروهای بلوکی را ردگیری می‌کند. موارد فوق به علاوه IF، FOR، CASE و WHILE.

expressions نتایج ارزیابی عبارت‌ها (expressions) را نمایش می‌دهد.

everything فراخوانی تمام ماکروهای AutoGen را نمایش می‌دهد، حتی ماکروهای TEXT (یعنی متن خارج از نشانه‌های نقل‌قول ماکرو). علاوه بر این، اگر فایل ``expr.ini'' را با فعال بودن اشکال‌زدایی بازسازی کنید، تمام فراخوانی‌های توابع scheme تعریف‌شده در AutoGen نیز ثبت (log) خواهند شد:

cd ${top_builddir}/agen5
DEBUG_ENABLED=true bash bootstrap.dir expr.ini
make CFLAGS='-g -DDEBUG_ENABLED=1'

توجه داشته باشید که نمی‌توانید این سورس را به این روش بازسازی کنید بدون اینکه ابتدا فایل اجرایی autogen را در مسیر جستجوی (search path) خود نصب کرده باشید. به همین دلیل، "expr.ini" در فهرست سورس‌های توزیع‌شده قرار دارد و در وابستگی‌ها نیست.


فایل خروجی ردگیری یا فیلتر.

خروجی مشخص‌شده می‌تواند نام یک فایل باشد، فایلی که داده‌ها به انتهای آن اضافه می‌شوند (append)، یا اگر آرگومان گزینه با عملگر پایپ (|) آغاز شود، دستوری است که خروجی ردگیری را به عنوان ورودی استاندارد دریافت می‌کند. برای مثال، --traceout='| less' خروجی ردگیری را از طریق برنامهٔ less اجرا می‌کند. الحاق به یک فایل با قرار دادن دو نویسه بزرگتر-از (>>) قبل از نام فایل مشخص می‌شود.


نمایش درخت تعاریف. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

این گزینه درخت کامل تعاریف را پیش از پردازش قالب چاپ می‌کند.


نمایش تعاریف استفاده‌شده. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

این گزینه نام مقادیر تعاریفی را که در حین پردازش قالب جستجو شده‌اند (چه در عمل پیدا شده باشند یا نه) چاپ می‌کند. ممکن است تعاریف ارجاع‌شده دیگری در بخش‌هایی از قالب وجود داشته باشند که ارزیابی نشده‌اند. برخی از نام‌های فهرست‌شده ممکن است نام‌های محاسباتی باشند و برخی دیگر آرگومان‌های ماکروی AutoGen باشند. این روشی برای تولید یک فهرست قطعی و فراگیر از همه مقادیر و فقط مقادیر استفاده‌شده از یک فایل تعاریف نیست. این صرفاً به عنوان کمکی برای مستندسازی قالب در نظر گرفته شده است.


به‌جا گذاشتن core dump در زمان خروج ناشی از شکست.

در بسیاری از سیستم‌ها مقدار پیش‌فرض محدودیت اندازه core صفر است. اگر سیستم دارای هدر sys/resource.h باشد و اگر این گزینه ارائه شود، در مسیر خروج ناموفق، autogen تلاش خواهد کرد محدودیت نرم (soft limit) اندازه core را روی هر مقداری که محدودیت سخت (hard limit) اندازه core است تنظیم کند. اگر این کار نکرد، مدیر سیستم باید محدودیت اندازه سخت core را افزایش دهد.

آن‌ها مشخص می‌کنند کدام خروجی‌ها و چه بخش‌هایی از خروجی‌ها تولید شوند.


صرف‌نظر کردن از فایل با این SUFFIX. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد. این گزینه نباید در ترکیب با هیچ یک از گزینه‌های زیر استفاده شود: select-suffix.

گاهی اوقات، ممکن است تولید تمام فایل‌های خروجی مشخص‌شده در قالب مطلوب نباشد. (برای مثال، فقط فایل هدر .h، اما نه متن برنامهٔ .c.) برای انجام این کار، --skip-suffix=c را در خط فرمان مشخص کنید.


مشخص کردن این پسوند خروجی. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

اگر می‌خواهید مشخصات پسوند موجود در قالب را نادیده بگیرید و جایگزین کنید، می‌توانید از یک یا چند نسخه از این گزینه استفاده کنید. به بخش مشخصات پسوند در بخش @ref{pseudo macro} مستندات info مراجعه کنید.


نام برای افزودن به فهرست تعاریف. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

نام‌های تعریف AutoGen برای اهداف زیر استفاده می‌شوند:

بخش‌هایی از تعاریف AutoGen ممکن است با استفاده از دستورات سبک زبان C مانند #ifdef و #ifndef فعال یا غیرفعال شوند.

هنگام تعریف یک مقدار برای یک نام، می‌توانید نمایه (index) را برای یک مقدار خاص مشخص کنید. آن نمایه می‌تواند یک مقدار صریح، یک گزینه define یا یک مقدار #define شده در خود تعاریف باشد.

نام یک فایل ممکن است دارای پیشوند $NAME/ باشد. بخش $NAME از رشته نام با مقدار تعریف‌شده برای NAME جایگزین خواهد شد.

هنگامی که بارگذاری تعاریف توسط AutoGen به پایان می‌رسد، مقادیر تعریف‌شده با putenv(3) به محیط صادر می‌شوند. سپس می‌توان از این مقادیر در اسکریپت‌های شل با ارجاعات ${NAME@} و در قالب‌ها با (getenv "NAME") استفاده کرد.

هنگام پردازش یک قالب، می‌توانید یک نمایه را برای بازیابی یک مقدار خاص مشخص کنید. آن نمایه همچنین می‌تواند یک مقدار تعریف‌شده باشد.

قرار دادن این نام در محیط صادرشده کاملاً معادل است. از نظر داخلی، این دقیقاً همان کاری است که AutoGen با این گزینه انجام می‌دهد.


الگوی حذف از فهرست تعاریف. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

مشابه با 'C'، برنامهٔ AutoGen از دستورات پیش‌پردازنده #ifdef/#ifndef استفاده می‌کند. این گزینه باعث می‌شود نام‌های منطبق از فهرست مقادیر تعریف‌شده حذف شوند.


تولید فایل وابستگی make. این گزینه می‌تواند به تعداد نامحدود تکرار شود. این گزینه را نمی‌توان از پیش با متغیرهای محیطی یا در فایل‌های مقداردهی اولیه (rc) تنظیم کرد.

این گزینه عملکردی بسیار شبیه به سری گزینه‌های -M در کامپایلر gcc دارد، با این تفاوت که به جای فقط تولید وابستگی‌های پیشین، وابستگی‌های پسین (فایل‌های هدف خروجی) را نیز تولید می‌کند. به‌طور پیش‌فرض، اطلاعات وابستگی خروجی در <base-name>.d قرار می‌گیرد، اما می‌تواند با -MF<file> نیز مشخص شود. برچسب زمانی این فایل به گونه‌ای دستکاری می‌شود که یک ثانیه قدیمی‌تر از قدیمی‌ترین فایل خروجی اصلی باشد.

هدف (target) در این فایل وابستگی معمولاً نام فایل وابستگی خواهد بود، اما می‌تواند با -MT<targ-name> نیز بازنویسی و لغو شود. برنامهٔ AutoGen محتوای آن فایل را تغییر نخواهد داد، اما ممکن است آن را ایجاد کرده و زمان تغییر آن را با زمان شروع مطابقت دهد.

NB: این حروف دوم بخشی از آرگومان گزینه هستند، بنابراین -MF <file> باید نویسه فاصله را نقل‌قول کرده یا آن را حذف کند، و -M "F <file>" قابل قبول است زیرا F بخشی از آرگومان گزینه است.

عبارت -M می‌تواند با هر یک از حروف M، F، P، T، Q، D یا G همراه باشد. با این حال، تنها F، Q، T و P معنادار هستند. همه به جز F معانی تا حدی متفاوتی دارند. -MT<name> به این معنی تفسیر می‌شود که <name> یک فایل نگهبان (sentinel file) است که به تمام ورودی‌ها (قالب‌ها و فایل‌های تعاریف) وابسته خواهد بود و تمام فایل‌های خروجی به این فایل نگهبان وابسته خواهند بود. این گزینه برای استفاده به عنوان یک هدف واقعی make مناسب است. حرف Q همانند T رفتار می‌کند، با این تفاوت که نویسه‌های دلار ('$') دو برابر می‌شوند. حرف P باعث می‌شود یک قانون ساختگی (phony rule) ویژه clean (clobber) در قطعه فایل make درج شود. یک قانون خالی همیشه برای ساخت فهرست اهداف ایجاد می‌شود.

نحوه استفاده پیشنهادی به این صورت است:

-MFwhatever-you-like.dep -MTyour-sentinel-file -MP
و سپس در Makefile خود، قانون autogen را بسازید:
  -include whatever-you-like.dep
  clean_targets += clean-your-sentinel-file
.sp
  your-sentinel-file:
      autogen -MT$@@ -MF$*.d .....
.sp
  local-clean :
      rm -f $(clean_targets)

زمان تغییر در فایل وابستگی به گونه‌ای تنظیم می‌شود که یک ثانیه قبل از زودترین برچسب زمانی هر فایل خروجی دیگر باشد. در نتیجه، برای استفاده به عنوان فایل نگهبان که گواهی بر اجرای موفقیت‌آمیز برنامه است، مناسب خواهد بود. (-include روش GNU make برای مشخص کردن «اگر وجود دارد آن را شامل شو» است. make شما باید از این قابلیت پشتیبانی کند یا فرایند bootstrap شما باید فایل را ایجاد نماید.)

تمامی این موارد را می‌توان با استفاده از متغیرهای محیطی DEPENDENCIES_OUTPUT یا AUTOGEN_MAKE_DEP نیز مشخص کرد. در صورت تعریف، اطلاعات وابستگی خروجی داده خواهد شد. اگر با متنی بدون فاصله تعریف شود که چیزی غیر از true، false، yes، no، 0 یا 1 باشد، آن رشته به عنوان نام فایل خروجی در نظر گرفته می‌شود. اگر شامل رشته‌ای از نویسه‌های فاصله باشد، توکن اول همانند بالا است و توکن دوم به عنوان فایل هدف (نگهبان) مانند -MT در پاراگراف‌های بالا در نظر گرفته می‌شود. DEPENDENCIES_OUTPUT اگر شامل چندین توالی از نویسه‌های فاصله باشد یا اگر محتوای آن به طور خاص false، no یا 0 باشد، نادیده گرفته خواهد شد.


عدم توقف ناگهانی (abort) در صورت بروز خطا.

به‌طور پیش‌فرض، AutoGen در صورت بروز خطا متوقف می‌شود و یک ایمیج core بر جای می‌گذارد. این گاهی اوقات ناخوشایند است. در صورت وجود در خط فرمان یا در محیط، AutoGen به جای abort() تابع exit(1) را فراخوانی خواهد کرد.

-?, --help

نمایش اطلاعات نحوه استفاده و خروج.
-!, --more-help

ارسال اطلاعات تفصیلی نحوه استفاده از طریق یک صفحه‌بند (pager).
-> [cfgfile], --save-opts [=cfgfile]

ذخیره وضعیت گزینه‌ها در cfgfile. مقدار پیش‌فرض، آخرین فایل پیکربندی فهرست‌شده در بخش پیش‌تنظیمات گزینه‌ها (OPTION PRESETS) در زیر است. دستور پس از به‌روزرسانی فایل پیکربندی خارج خواهد شد.
-< cfgfile, --load-opts=cfgfile, --no-load-opts

بارگذاری گزینه‌ها از cfgfile. شکل no-load-opts بارگذاری فایل‌های پیکربندی قبلی config/rc/ini را غیرفعال می‌کند. گزینهٔ --no-load-opts زودتر و خارج از نوبت معمول بررسی می‌شود.

نمایش نسخه برنامه و خروج. حالت پیش‌فرض `v` است که یک نسخه ساده است. حالت `c` اطلاعات کپی‌رایت را چاپ می‌کند و `n` متن کامل اعلان کپی‌رایت را چاپ خواهد کرد.

هر گزینه‌ای که به عنوان not presettable (غیرقابل پیش‌تنظیم) علامت‌گذاری نشده باشد، ممکن است با بارگذاری مقادیر از فایل(های) پیکربندی ("RC" یا ".INI") و مقادیر برگرفته از متغیرهای محیطی زیر پیش‌تنظیم شود:

AUTOGEN_<option-name> یا AUTOGEN

پیش‌تنظیمات متغیرهای محیطی اولویت بیشتری نسبت به فایل‌های پیکربندی دارند (بعد از آن‌ها پردازش می‌شوند). فایل‌های homerc عبارتند از "$HOME" و ".". اگر هر یک از این‌ها دایرکتوری باشند، آنگاه فایل .autogenrc درون آن دایرکتوری‌ها جستجو می‌شود.

برای متغیرهای محیطی پیکربندی به بخش پیش‌تنظیمات گزینه‌ها (OPTION PRESETS) مراجعه کنید.

برای فایل‌های پیکربندی به بخش پیش‌تنظیمات گزینه‌ها (OPTION PRESETS) مراجعه کنید.

در اینجا نحوه تولید صفحه راهنما آورده شده است:

autogen -Tagman-cmd.tpl -MFman-dep -MTstamp-man opts.def

این دستور این صفحه راهنما را از روی فایل تعاریف گزینه‌های AutoGen تولید کرده است. این دستور قالب مشخص‌شده در opts.def (که معمولاً options.tpl است) را لغو کرده و از agman-cmd.tpl استفاده می‌کند. همچنین خروجی وابستگی فایل make را روی man-dep و فایل نگهبان (فایل برچسب زمانی) را روی man-stamp تنظیم می‌کند. نام پایه فایل از مقدار تعریف‌شدهٔ prog-name مشتق می‌شود.

سند فراخوانی texi از طریق زیر تولید می‌شود:

autogen -Tagtexi-cmd.tpl -MFtexi-dep -MTtexi-stamp opts.def

یکی از مقادیر خروج زیر بازگردانده خواهد شد:

0 (EXIT_SUCCESS)

اجرای موفقیت‌آمیز برنامه.
1 (EXIT_OPTION_ERROR)

گزینه‌های دستور به درستی پیکربندی نشده بودند.
2 (EXIT_BAD_TEMPLATE)

هنگام پردازش قالب خطایی رخ داد.
3 (EXIT_BAD_DEFINITIONS)

تعاریف قابل فهم و تجزیه نبودند.
4 (EXIT_LOAD_ERROR)

خطایی در طول مرحله بارگذاری رخ داد.
5 (EXIT_FS_ERROR)

یک خطای سیستم فایل برنامه را متوقف کرد.
6 (EXIT_NO_MEM)

حافظه ناکافی برای انجام عملیات وجود ندارد.
128 (EXIT_SIGNAL)

برنامهٔ autogen به دلیل دریافت یک سیگنال خارج شد. اگر قالب شما شامل فرمت‌بندی رشته‌ای باشد، یک آرگومان عددی برای یک عنصر فرمت‌بندی "%s" باعث ایجاد خطای segmentation fault خواهد شد. برنامهٔ Autogen سیگنال seg fault را دریافت کرده و با AUTOGEN_EXIT_SIGNAL(5) خارج می‌شود. از طرف دیگر، ممکن است AutoGen با یک سیگنال kill(2) متوقف شده باشد. برای تشخیص شماره سیگنال، ۱۲۸ را از کد خروج واقعی کم کنید.
66 (EX_NOINPUT)

یک فایل پیکربندی مشخص‌شده بارگذاری نشد.
70 (EX_SOFTWARE)

کتابخانه libopts با یک خطای عملیاتی داخلی مواجه شد. لطفاً آن را به نشانی autogen-users@lists.sourceforge.net گزارش دهید. با تشکر.

Bruce Korb

حق نشر © 1992-2018 متعلق به Bruce Korb است؛ تمامی حقوق محفوظ است. این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License)، نسخه ۳ یا جدیدتر منتشر شده است.

لطفاً گزارش‌های باگ را به نشانی autogen-users@lists.sourceforge.net ارسال کنید.

این صفحه راهنما توسط AutoGen از روی تعاریف گزینه‌های autogen تولید شده است.

26 Aug 2018 GNU AutoGen (5.18.16)