fpcmake(5) قالب Makefile.fpc در Free Pascal fpcmake(5)

fpcmake - پرونده پیکربندی برای fpcmake

Makefile.fpc یک پرونده پیکربندی برای دستور fpcmake است. با استفاده از این پرونده، یک Makefile برای کامپایل واحدها و برنامه‌های Free Pascal ایجاد می‌شود.

Makefile.fpc یک پرونده متنی ساده اسکی (ASCII) است که همانند یک پرونده ini در ویندوز، شامل چندین بخش می‌باشد. بخش‌های زیر (به ترتیب الفبا) شناسایی می‌شوند:

قوانین پاک‌سازی دایرکتوری از واحدها و برنامه‌ها را مشخص می‌کند. ورودی‌های زیر شناسایی می‌شوند:
نام تمام واحدهایی که باید هنگام پاک‌سازی حذف شوند. پسوندها را مشخص نکنید، چرا که خود makefile آن‌ها را اضافه خواهد کرد.
نام پرونده‌هایی که باید حذف شوند. نام کامل پرونده‌ها را مشخص کنید.
بخش defaults شامل برخی تنظیمات پیش‌فرض است. کلیدواژه‌های زیر شناسایی می‌شوند:
شامل دستورالعمل‌هایی برای نصب واحدها و برنامه‌های شما است. کلیدواژه‌های زیر شناسایی می‌شوند:
دایرکتوری‌ای که تمام نصب‌ها در زیر آن انجام می‌شوند. این معادل آرگومان --prefix در configure گنو (GNU) است. از این دایرکتوری برای نصب برنامه‌ها و واحدها استفاده می‌شود. به طور پیش‌فرض، این مقدار در لینوکس برابر /usr و در تمام پلتفرم‌های دیگر برابر /pp است.
دایرکتوری‌ای که به عنوان دایرکتوری پایه برای نصب واحدها استفاده می‌شود. به طور پیش‌فرض این مقدار برابر است با dirprefix به همراه /lib/fpc/FPC_VERSION برای لینوکس، یا صرفاً همان dirprefix در پلتفرم‌های دیگر.
واحدها در زیردایرکتوری units/$(OS_TARGET) از ورودی dirbase نصب خواهند شد.
این بخش مشخص می‌کند که چه واحدهایی باید در یک کتابخانه ادغام شوند و چه کتابخانه‌های خارجی مورد نیاز هستند. این بخش می‌تواند شامل کلیدواژه‌های زیر باشد:
نام کتابخانه‌ای که باید ایجاد شود.
فهرستی جداشده با کاما از واحدهایی که باید به یک کتابخانه منتقل شوند.
یک مقدار بولی (boolean) که مشخص می‌کند آیا کتابخانه gcc مورد نیاز است یا خیر. این گزینه اطمینان حاصل می‌کند که مسیر کتابخانه GCC در مسیر جستجوی کتابخانه‌ها درج شود.
یک مقدار بولی که به makefile اعلام می‌کند دایرکتوری‌های کتابخانه دیگری نیز مورد نیاز خواهند بود.
مشخص می‌کند چه بسته‌هایی باید استفاده شوند. این بخش می‌تواند شامل کلیدواژه‌های زیر باشد:
فهرستی جداشده با کاما از بسته‌هایی که برای کامپایل هدف‌ها مورد نیاز هستند. معتبر برای تمام پلتفرم‌ها. برای تفکیک بین پلتفرم‌ها، می‌توانید نام سیستم‌عاملی را که برای آن کامپایل می‌کنید به ابتدای کلیدواژه packages اضافه کنید؛ به عنوان مثال linuxpackages اگر می‌خواهید makefile فقط در لینوکس از بسته‌های فهرست‌شده استفاده کند.
این یک مقدار بولی (۰ یا ۱) است که مشخص می‌کند آیا از FCL استفاده می‌شود یا خیر.
این یک مقدار بولی (۰ یا ۱) است که مشخص می‌کند آیا RTL باید دوباره کامپایل شود یا خیر.
هر آنچه در این بخش قرار گیرد، دقیقاً به همان صورت در makefile درج خواهد شد؛ پس از قوانین makefile که توسط fpcmake تولید شده‌اند، اما پیش از قوانین پیکربندی عمومی. در آن، شما نمی‌توانید از متغیرهایی که توسط قوانین fpcmake تعریف شده‌اند استفاده کنید، اما می‌توانید قوانین و متغیرهای پیکربندی اضافی تعریف نمایید.
هر آنچه در این بخش قرار گیرد، دقیقاً به همان صورت در makefile درج خواهد شد؛ پیش از قوانین هدف makefile که توسط fpcmake تولید می‌شوند. این بدان معناست که شما نمی‌توانید از متغیرهایی استفاده کنید که به طور معمول توسط fpcmake تعریف می‌شوند.
در این بخش می‌توانید قوانین وابستگی و هر هدف دیگری را که مایلید داشته باشید، درج کنید. «قوانین پیش‌فرض» (default rules) را در اینجا وارد نکنید.
در اینجا می‌توانید مشخص کنید کدام «بخش‌های قوانین» (rule sections) باید در Makefile گنجانده شوند. بخش‌ها از مجموعه‌ای از کلیدواژه‌های بولی تشکیل شده‌اند؛ هر کلیدواژه تصمیم می‌گیرد که آیا یک بخش خاص در makefile نوشته شود یا خیر. به طور پیش‌فرض، تمام بخش‌ها نوشته می‌شوند.

می‌توانید کلیدواژه‌های بولی زیر را در این بخش داشته باشید:

اگر روی true تنظیم شود، هیچ بخشی نوشته نمی‌شود.
اگر روی false تنظیم شود، fpcmake از درج قوانین کامپایل واحدها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین کامپایل پرونده‌های اجرایی صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین اسمبل کردن پرونده‌های اسمبلی صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین کامپایل مثال‌ها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین ساخت بسته‌ها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین عمومی برای کامپایل پرونده‌های پاسکال صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین وابستگی صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین نصب همه موارد صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین نصب کدهای منبع صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین نصب آرشیوها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین پاک‌سازی دایرکتوری‌ها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین ساخت کتابخانه‌ها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین ایجاد خط فرمان بر اساس متغیرهای مختلف صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین مربوط به پسوندها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین اجرای make در زیردایرکتوری‌ها صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین اجرای برخی ابزارها مانند آرشیوکننده، UPX و zip صرف‌نظر می‌کند.
اگر روی false تنظیم شود، fpcmake از درج قوانین تولید اطلاعات صرف‌نظر می‌کند.
در این بخش می‌توانید هدف‌های مختلف را تعریف کنید. کلیدواژه‌های زیر در این بخش قابل استفاده هستند:
فهرستی جداشده با فاصله از دایرکتوری‌هایی که make باید در آن‌ها نیز اجرا شود.
فهرستی جداشده با فاصله از برنامه‌های نمونه که باید هنگام درخواست کاربر برای کامپایل مثال‌ها، کامپایل شوند. پسوند را مشخص نکنید، پسوند به طور خودکار اضافه خواهد شد.
فهرستی جداشده با فاصله از نام پرونده‌های اسمبلی که باید اسمبل شوند. پسوند را مشخص نکنید، پسوند اضافه خواهد شد.
فهرستی جداشده با فاصله از نام برنامه‌هایی که باید کامپایل شوند. پسوند را مشخص نکنید، پسوند اضافه خواهد شد.
فهرستی از پرونده‌های rst که باید برای استفاده با روال‌های بین‌المللی‌سازی و gettext گنو (GNU)، به پرونده‌های .po تبدیل شوند.
فهرستی جداشده با فاصله از نام واحدهایی که باید کامپایل شوند. پسوند را مشخص نکنید؛ ذکر نام واحد همان‌گونه که در عبارت uses می‌آید کافی است.
در این بخش می‌توانید مشخص کنید کدام ابزارها مورد نیاز هستند. بسته به تنظیمات این بخش، تعاریف لازم برای استفاده از هر یک از ابزارهای فهرست‌شده در makefile درج خواهد شد.

هر کلیدواژه یک کلیدواژه بولی است؛ شما می‌توانید با آن استفاده از یک ابزار را روشن یا خاموش کنید.

کلیدواژه‌های زیر شناسایی می‌شوند:

استفاده از ppdep، ابزار وابستگی. به طور پیش‌فرض True است.
استفاده از ppumove، ابزار جابجایی واحدهای Free Pascal. به طور پیش‌فرض True است.
استفاده از ابزار ppufile برای تعیین وابستگی‌های پرونده‌های واحد. به طور پیش‌فرض True است.
استفاده از sed، ویرایشگر جریان متن. به طور پیش‌فرض False است.
استفاده از ابزار data2inc برای ایجاد پرونده‌های include از پرونده‌های داده. به طور پیش‌فرض False است.
استفاده از ابزار diff گنو (GNU). به طور پیش‌فرض False است.
استفاده از ابزار مقایسه پرونده cmp. به طور پیش‌فرض False است.
استفاده از فشرده‌ساز پرونده‌های اجرایی upx. به طور پیش‌فرض True است.
استفاده از ابزار نمایش تاریخ date. به طور پیش‌فرض True است.
استفاده از بایگان پرونده zip. این ابزار توسط هدف‌های zip استفاده می‌شود. به طور پیش‌فرض True است.
این بخش می‌تواند برای ایجاد پرونده‌های zip از واحدها و برنامه‌های کامپایل‌شده استفاده شود. به طور پیش‌فرض، تمام واحدهای کامپایل‌شده فشرده (zip) می‌شوند. رفتار zip را می‌توان با بخش‌های presettings و postsettings تحت تأثیر قرار داد.

کلیدواژه‌های زیر می‌توانند در این بخش استفاده شوند:

نام پرونده zip که تولید خواهد شد.
نام یک هدف makefile است که پیش از ایجاد zip اجرا خواهد شد. به طور پیش‌فرض این مقدار، هدف install است.

fpcmake(1), ppc386(1), make(1)
12 Dec 1999 FreePascal