| makerules(4L) | GMD FOKUS FILE FORMATS | makerules(4L) |
نام (NAME)
makerules - قوانین ساخت و پیکربندی سیستم make مبتنی بر شابلون
خلاصه دستور (SYNOPSIS)
SRCROOT= ..
RULESDIR= RULES
include $(SRCROOT)/$(RULESDIR)/rules.top
تعاریف
محلی در
اینجا قرار
میگیرند
include $(SRCROOT)/$(RULESDIR)/rules.*
برای مقادیر ممکن rules.*، فصل «انواع هدفهای پشتیبانیشده در حال حاضر» را ببینید.
توضیحات (DESCRIPTION)
Makerules مجموعهای از قوانین است که امکان کامپایل و ساخت پروژههای ساختیافته را با makefileهای کوچک و دارای ساختار یکنواخت فراهم میکند. تمام قوانین در یک دایرکتوری مرکزی قرار دارند. کامپایل پروژهها روی پلتفرمهای مختلف میتواند بهطور همزمان و بدون نیاز به اصلاح هیچیک از makefileهای موجود در دایرکتوریهای پروژهها انجام شود.
Makerules مجموعهای از ابزارهای سطح بالای سازگاری و انتقالپذیری (portability) است که از autoconf برتر بوده و استفاده از آن آسانتر است.
در حال حاضر سه برنامه make پشتیبانی میشوند: Sunpro make، GNU make و smake. اگر میخواهید پشتیبانی از برنامههای make دیگر را اضافه کنید، بخشهای مربوط به حداقل نیازمندیهای یک برنامه make و ساختار سامانه قوانین make را مطالعه کنید.
این راهنما به برنامهنویسانی کمک میکند که نیاز به اعمال تغییرات روی خود سامانه قوانین make دارند. اگر میخواهید درباره نحوه استفاده از سامانه makefile اطلاعات کسب کنید، به makefiles(4) نگاهی بیندازید.
هدف اصلی طراحی این بوده است که هیچ تعریفی در بیش از یک مکان در قوانین make وجود نداشته باشد. این امر بدین معناست که برنامهنویسان سیستم که میخواهند قوانینی را اضافه یا اصلاح کنند باید از این هدف پیروی نمایند تا عملکرد در بخشهای دیگر دچار اختلال نشود.
نتیجه مشهود برای کاربر، مجموعهای از makefileهای کوچک و خوانا است که هر یک در دایرکتوری برگ (leaf) پروژه قرار دارند و بنابراین leaf-makefile (یا makefile برگ) نامیده میشوند.
در واقع، هر یک از این leaf-makefileها هیچ قانونی در خود ندارند. آنها صرفاً چند ماکرو برای برنامه make تعریف کرده و دو فایل را از مخزن مرکزی قوانین make وارد (include) میکنند. این فایلهای واردشده، قوانینی را که برای کامپایل پروژه مورد نیاز است تعریف میکنند.
هر leaf-makefile به روشی بسیار ساده تشکیل شده است:
- •
- ابتدا دو ماکرو تعریف میکند که مکان نسبی دایرکتوری ریشه پروژه و نام دایرکتوری شامل مجموعه کامل قوانین را مشخص میکنند و سپس فایل قانون rules.top را از دایرکتوری که مخزن مرکزی قوانین را تشکیل میدهد، وارد میکند. شما فقط باید ماکروی SRCROOT را ویرایش کنید تا مکان نسبی دایرکتوری ریشه پروژه را بازتاب دهد.
- •
- بخش بعدی یک leaf-makefile ماکروهایی را تعریف میکند که هدف و سورس را شرح میدهند. در هر leaf-makefile فقط میتوانید یک هدف داشته باشید. البته، ممکن است فایلهای سورس متعددی برای ساخت آن هدف مورد نیاز باشند. اگر میخواهید بیش از یک هدف در یک دایرکتوری مشخص بسازید، باید بیش از یک makefile در آن دایرکتوری قرار دهید. این همان بخشی از makefile است که یک هدف یکتا را توصیف میکند. این بخش را ویرایش کنید تا شامل تمام فایلهای سورس، تمام فایلهای include محلی و تمام فلگهای زمان کامپایل غیرسراسری باشد که برای هدف شما مورد نیاز است. برای یک هدف معمولی، این کار به سادگی پر کردن یک فرم است.
- •
- در نهایت هر leaf-makefile فایلی را از دایرکتوری قوانین وارد میکند که حاوی قوانین مربوط به نوع مناسب هدفی است که قرار است از این leaf-makefile ساخته شود.
فایل makefile در هر دایرکتوری باید Makefile نامیده شود. اگر میخواهید بیش از یک makefile در یک دایرکتوری مشخص داشته باشید، باید نامهای متفاوتی را برای سایر makefileها انتخاب کنید.
انواع هدفهای پشتیبانیشده در حال حاضر (CURRENTLY SUPPORTED TARGET TYPES)
قوانینی برای انواع هدفهای زیر وجود دارد:
- دستورات (commands)
- قوانین make برای دستورات سطح کاربر مانند cat، ls و غیره در فایل rules.cmd قرار دارند.
- درایورها (drivers)
- قوانین make برای درایورهای دستگاه در فایل rules.drv قرار دارند.
- کتابخانهها (libraries)
- قوانین make برای کتابخانههای غیرمشترک در فایل rules.lib قرار دارند.
- کتابخانههای مشترک (shared libraries)
- قوانین make برای کتابخانههای مشترک در فایل rules.shl قرار دارند.
- فایلهای محلیسازیشده (localized files)
- قوانین make برای فایلهای محلیسازیشده در فایل rules.loc قرار دارند.
- فایلهای غیرمحلیسازیشده (nonlocalized files)
- قوانین make برای فایلهای غیرمحلی در فایل rules.aux قرار دارند.
- اسکریپتهای شل (shell scripts)
- قوانین make برای اسکریپتهای شل (نوعی از فایلهای محلیسازیشده) در فایل rules.scr قرار دارند.
- صفحات راهنما (manual pages)
- قوانین make برای صفحات راهنما (نوعی از فایلهای محلیسازیشده) در فایل rules.man قرار دارند.
- makefileهای منحرفشده (diverted makefiles)
- قوانین make برای پروژههایی که نیاز به داشتن بیش از یک makefile در یک دایرکتوری مشخص دارند در فایل rules.mks قرار دارند. این فایل حاوی قانونی است که پردازش را به زیر-makefileهای فهرستشده هدایت میکند. هر زیر-makefile میتواند از هر نوعی باشد.
- دایرکتوریها (directories)
- قوانین make برای زیردایرکتوریها در فایل rules.dir قرار دارند.
حداقل نیازمندیها برای یک برنامه Make (MINIMUM REQUIREMENTS FOR A MAKE PROGRAM)
قوانین make در حال حاضر از Sunpro make، GNU make و smake پشتیبانی میکنند. اگر میخواهید پشتیبانی از برنامههای make دیگر را اضافه کنید، آنها باید برخی ویژگیهای حداقلی فراتر از قابلیتهای برنامه استاندارد UNIX make داشته باشند. BSDmake در صورتی که قوانین تطبیق الگو را به درستی پشتیبانی کند، میتواند پشتیبانی شود.
- وارد کردن (include)
- برنامه make باید بتواند فایلهای دیگر را به صورت بازگشتی از درون یک makefile وارد کند. نام فایلی که وارد میشود باید مجاز باشد که یک ماکرو باشد. برنامه make باید بتواند این کار را به گونهای انجام دهد که اگر فایل مورد نظر نتیجه یک قانون make باشد (مثلاً اگر فایلی که باید وارد شود وجود ندارد یا قدیمی است)، قبل از تلاش برای وارد کردن واقعی آن ساخته شود.
- الحاق به ماکرو (appending to a macro)
- یک ارجاع
ماکرو به
شکل:
macro += addval
باید addval را به رشتهای که در حال حاضر در macro قرار دارد، الحاق کند.
- جایگزینی پسوند ماکرو (suffix macro replacement)
- یک ارجاع
ماکرو به
شکل:
out= $(macro:string1=string2)
باید یک پسوند string1 را به string2 در تمام کلمات موجود در macro جایگزین کند، که در آن string1 یا یک پسوند است، یا کلمهای که باید در تعریف ماکرو جایگزین شود، و string2 پسوند یا کلمه جایگزین است. String1 و string2 باید حتی اگر خودشان ماکرو باشند نیز به درستی جایگزین شوند. کلمات در مقدار یک ماکرو با نویسههای فاصله (SPACE)، تب (TAB) و خط جدید اسکیپشده از هم جدا میشوند.
- جایگزینی الگوی ماکرو (pattern macro replacement)
- یک ارجاع
ماکرو به
شکل:
out= $(macro:op%os=np%ns)
باید یک الگوی مرکزی را در macro جایگزین کند، که در آن op پیشوند موجود (قدیمی) و os پسوند موجود (قدیمی) است، np و ns به ترتیب پیشوند جدید و پسوند جدید هستند، و الگوی تطبیقیافته با % (رشتهای از صفر یا چند نویسه)، از مقداری که جایگزین میشود به جلو منتقل میگردد. به عنوان مثال:
PROGRAM=fabricate
DEBUG= $(PROGRAM:%=tmp/%-g)مقدار DEBUG را به tmp/fabricate-g تنظیم میکند. Op، os، np و ns باید حتی در صورتی که خودشان ماکرو باشند نیز به درستی جایگزین شوند.
درک الگوریتمهای پایه (UNDERSTANDING BASIC ALGORITHMS)
یکی از الگوریتمهای پایه که در سامانه قوانین make استفاده میشود، برای تنظیم یک ماکروی تعریفنشده به یک مقدار پیشفرض تضمینشده مورد نیاز است. از آنجا که همه برنامههای make از ساختارهای if then else پشتیبانی نمیکنند، باید روش متفاوتی به کار گرفته شود.
روشی که در قوانین make استفاده شده است، با استفاده از جایگزینی پسوند ماکرو و جایگزینی الگوی ماکرو پیادهسازی میشود.
ابتدا، ماکرویی که حاوی یک پسوند یکتا است تعریف میشود:
# Define magic unique cookie
_UNIQ= .XxZzy-
این ماکرو برای تمام مکانهایی که داشتن ماکرویی با مقدار پیشفرض تضمینشده در آنها ضروری است، استفاده میشود. مثال زیر الگوریتم پایهای را نشان میدهد که برای پیادهسازی این عبارت استفاده شده است: اگر $(MAKE_NAME) حاوی یک مقدار باشد، آنگاه $(XMAKEPROG) روی $(MAKE_NAME) تنظیم میشود، در غیر این صورت $(XMAKEPROG) روی $(MAKEPROG) تنظیم خواهد شد.
_MAKEPROG= $(_UNIQ)$(MAKE_NAME)
__MAKEPROG= $(_MAKEPROG:$(_UNIQ)=$(MAKEPROG))
XMAKEPROG= $(__MAKEPROG:$(_UNIQ)%=%)
خط اول در این مثال، ماکروی _MAKEPROG را روی الحاق مقدار MAKE_NAME و .XxZzy- تنظیم میکند. اگر ماکروی MAKE_NAME در این زمان خالی باشد، _MAKEPROG فقط شامل .XxZzy- خواهد بود.
در خط دوم، __MAKEPROG روی مقدار _MAKEPROG تنظیم میشود. اگر _MAKEPROG فقط شامل .XxZzy- باشد، بدین معناست که .XxZzy- همان پسوند است. سپس این پسوند با مقدار MAKEPROG جایگزین میشود؛ در این حالت __MAKEPROG شامل مقدار تغییرنیافته MAKEPROG خواهد بود. اگر _MAKEPROG شامل الحاق .XxZzy- و چیز دیگری باشد، .XxZzy- یک پسوند نخواهد بود، بلکه یک پیشوند برای _MAKEPROG است و به همین دلیل __MAKEPROG شامل مقدار تغییرنیافته _MAKEPROG خواهد بود که الحاقی از .XxZzy- و مقدار MAKE_NAME است.
در خط سوم، XMAKEPROG روی مقدار __MAKEPROG تنظیم میشود. اگر __MAKEPROG در این زمان دارای پیشوند .XxZzy- باشد، .XxZzy- از آن حذف میشود.
ساختار نامهای ماکروی Make (THE STRUCTURE IN MAKE MACRO NAMES)
نامهای استفادهشده برای ماکروهای make به گونهای ساختار یافتهاند که امکان استفاده از grep(1) را برای جستجوی نامها در قوانین make فراهم میکنند. برای امکانپذیر ساختن این امر، هیچ نامی نباید زیررشتهای از نام دیگر باشد.
اگر دستوری نیاز به گزینههایی داشته باشد که باید در ماکروها مشخص شوند، یک ماکروی make وجود دارد که XXXFLAGS نامیده میشود. این مطابق با قوانین معمول makefile است. ماکروهای داخلی make به نامهای XXXOPTS و XXXOPTX وجود دارند که برای XXXFLAGS ترکیب خواهند شد:
LDFLAGS= $(LDOPTS) $(LDOPTX)
که در آن XXXOPTS نام ماکرویی است که به صورت داخلی استفاده میشود و XXXOPTX نام ماکرویی است که میتواند از خط فرمان برنامه make استفاده شود. بنابراین XXXOPTX برای الحاق به محتوای XXXFLAGS استفاده میشود. اگر نیاز باشد که مقدار XXXFLAGS بازنویسی و جایگزین شود، میتوان XXXOPTS را در فلگهای خط فرمان برنامه make استفاده کرد.
ساختار سامانه قوانین Make (THE STRUCTURE OF THE MAKE RULE SYSTEM)
ساختار قوانین پایه در rules.top (The Structure Of The Basic Rules in rules.top)
فایل RULES/rules.top ابتدا یک فایل قانون را وارد میکند که به برنامه make مورد استفاده بستگی دارد. نام این فایل RULES/mk-makeprog.id است که در آن makeprog باید با نام واقعی برنامه make جایگزین شود؛ مانند make، gmake یا smake. هدف این فایل راهاندازی فهرستی از ماکروها است که سیستمی را که پروژه در حال حاضر روی آن ساخته میشود، مشخص میکنند. این ماکروها مقادیری دارند که فقط شامل حروف کوچک بوده و موارد زیر را تعریف میکنند:
- معماری پردازنده
- اگر دو سیستم یک سیستمعامل یکسان را اجرا کنند، در صورتی که یک برنامه ساده سطح کاربر برای اجرا روی سیستم دیگر نیازی به کامپایل مجدد نداشته باشد، این یک مقدار یکتا است. مقادیر ممکن عبارتند از sparc، mc68020 و pentium. این خروجی uname -p است. مقدار در P_ARCH ذخیره میشود.
- معماری هسته
- اگر دو سیستم ممکن است مقدار یکسانی برای P_ARCH داشته باشند، اما یک برنامه سطح کاربر که به شدت به سیستم وابسته است برای اجرا روی سیستم دیگر نیازمند کامپایل مجدد باشد، این دو سیستم دارای معماریهای هسته متفاوتی هستند. این خروجی uname -m است. مقادیر ممکن عبارتند از sun3، sun4c و sun4m. مقدار در K_ARCH ذخیره میشود.
- معماری ماشین
- یک ماکروی قدیمی که تنها روی سیستمهای sun مفید است. از این استفاده نکنید؛ به جای آن از P_ARCH استفاده کنید. این خروجی arch است. مقادیر ممکن عبارتند از sun3 و sun4. مقدار در M_ARCH ذخیره میشود.
- نام میزبان
- نام ماشینی که کامپایل روی آن انجام میگیرد. این خروجی uname -n است. مقدار در HOSTNAME ذخیره میشود.
- نام سیستمعامل
- این خروجی uname -s است. مقادیر ممکن عبارتند از sunos، dgux، hp-ux و irix. مقدار در OSNAME ذخیره میشود.
- نسخه انتشار سیستمعامل
- این خروجی uname -r است. مقادیر ممکن عبارتند از 5.5 و 4.1.4. مقدار در OSREL ذخیره میشود.
فایل بعدی که از RULES/rules.top وارد میشود، RULES/os-operating system.id است. این فایل ماکروهای O_ARCH و -O_ARCH را تعریف میکند و ممکن است یکی از ماکروهای تعریفشده در RULES/mk-makeprog.id را اصلاح کند. ماکروهای O_ARCH و -O_ARCH برای تمایز بین سیستمعاملهای مختلف به کار میروند. نام فایلهای پیکربندی کامپایلر دارای -O_ARCH به عنوان یک بخش مرکزی است. روی برخی از سیستمعاملها مانند SunOS و DG-UX لازم است بین SunOS 4.x و SunOS 5.x یا DG-UX 3.x و DG-UX 4.x تمایز قائل شد.
فایل بعدی که از RULES/rules.top وارد میشود، Defaults است. این فایل ماکروهای DEFCCOM، DEFINCDIRS، LDPATH، RUNPATH، INS_BASE و INS_KBASE را تعریف میکند. اگر تعاریف روی سیستمهای مختلف باید متفاوت باشند، این فایل میتواند شامل خطی به شکل زیر باشد:
include $(SRCROOT)/Defaults.$(O_ARCH)
تعاریف واقعی سپس باید به این فایلها منتقل شوند.
سپس، پس از تنظیم برخی پیشفرضهای داخلی، RULES/rules.top فایل پیکربندی کامپایلر را با نام زیر وارد میکند:
$(SRCROOT)/$(RULESDIR)/$(XARCH).rul
این فایل شامل تمام موارد ضروری وابسته به سیستم است که برای پیکربندی کامپایلر C روی سیستم مربوطه مورد نیاز است. ایجاد یک فایل جدید از ابتدا ایده بدی است. به سایر فایلهای پیکربندی کامپایلر نگاهی بیندازید و یک فایل مشابه را مطابق نیازهای خود اصلاح کنید. توجه داشته باشید که اساساً دو معیار وجود دارد که در یک فایل پیکربندی کامپایلر مهم هستند. یکی اینکه آیا سیستم از قالب هدر ELF استفاده میکند یا خیر. دیگری اینکه آیا سیستم از کتابخانههای مشترک استفاده میکند یا خیر.
ساختار قوانین ویژه برنامه (THE STRUCTURE OF THE APPLICATION SPECIFIC RULES)
فایلهای قوانین ویژه برنامه به گونهای طراحی شدهاند که تمام موارد ضروری مورد نیاز برای آن وظیفه خاص را در بر گیرند. فایلهای قوانین ویژه برنامه عبارتند از:
- $(RULES)/rules.aux
- قوانین برای نصب فایلهای کمکی غیرمحلی.
- $(RULES)/rules.cmd
- قوانین برای دستوراتی مانند sh.
- $(RULES)/rules.dir
- قوانین برای زیردایرکتوریها.
- $(RULES)/rules.drv
- قوانین برای درایورهای قابل بارگذاری.
- $(RULES)/rules.lib
- قوانین برای کتابخانههای ایستا (غیرمشترک).
- $(RULES)/rules.loc
- قوانین برای نصب فایلهای کمکی محلیسازیشده.
- $(RULES)/rules.man
- قوانین برای نصب صفحات راهنمای محلیسازیشده.
- $(RULES)/rules.mks
- قوانین برای زیر-makefileها.
- $(RULES)/rules.mod
- قوانین برای ماژولهای stream قابل بارگذاری.
- $(RULES)/rules.scr
- قوانین برای نصب اسکریپتهای شل محلیسازیشده.
- $(RULES)/rules.shl
- قوانین برای کتابخانههای مشترک.
درک ساختار سامانه قوانین Make (UNDERSTANDING THE STRUCTURE OF THE MAKE RULE SYSTEM)
برای درک ساختار سامانه قوانین make در حین اعمال تغییرات، سعی کنید از فلگ -xM در برنامه smake استفاده کنید. این فلگ فهرست وابستگیهای include (یعنی فهرستی که مشخص میکند کدام قوانین make از کدام قانون دیگر وارد شدهاند) را چاپ میکند.
توجه داشته باشید که برخی از قوانین به برنامه make وابسته هستند. اگر میخواهید تغییراتی در این قوانین ایجاد کنید، ممکن است نیاز باشد تعاریف را در فایلهای قوانین جداگانه، هر کدام برای برنامه make مربوطه، قرار دهید. برای مشاهده چند نمونه، به دایرکتوری RULES نگاهی بیندازید.
فایلها (FILES)
.../RULES/*
.../DEFAULTS/*
.../TARGETS/*
.../TEMPLATES/*
همچنین ببینید (SEE ALSO)
عیبیابی (DIAGNOSTICS)
پیامهای عیبیابی به برنامه make بستگی دارند. به صفحه راهنمای مربوطه نگاه کنید.
نکات (NOTES)
قوانین make را میتوان با Sunpro make، Gnu make و smake استفاده کرد. اگرچه Gnu make روی بسیاری از پلتفرمها اجرا میشود، اما خروجی اشکالزدایی مفیدی ندارد.
اگر با یک makefile مشکل دارید، از Sunpro make یا smake استفاده کنید. Sunpro make و smake، هر دو گزینه -D را دارند که به شما امکان میدهد makefileها را پس از اولین بسط مشاهده کنید. اگر شک دارید که آیا makefile شما به درستی بسط مییابد و آیا قوانین مناسب وارد شدهاند یا خیر، از این گزینه استفاده کنید. همچنین گزینه -d وجود دارد که در حین اجرای make خروجی اشکالزدایی ارائه میدهد. اگر خروجی بیشتری میخواهید، از -dd، -ddd و به همین ترتیب استفاده کنید.
Smake گزینه -xM دارد که وابستگی include را برای قوانین make به شما نشان میدهد.
اشکالات (BUGS)
سلسلهمراتب درخت سورس (SOURCE TREE HIERARCHY)
طرح کلی زیر یک مرور سریع از یک سلسلهمراتب سورس معمولی ارائه میدهد:
- .../
- دایرکتوری ریشه درخت سورس
- Makefile
- فایل Makefile اصلی ریشه
- Defaults
- تعاریف پیشفرض برای آن درخت سورس. تعاریف وابسته به سیستم در .../DEFAULTS/ قرار دارند
- Targetdirs
- فایلی شامل فهرستی از دایرکتوریهایی که برای آن پروژه مورد نیاز هستند. اگر سیستم بسته به معماری سیستم هدف به فهرستهای هدف متفاوتی نیاز دارد، از فایلهای مخصوص هدف در .../TARGETS/ استفاده کنید
- ...
- .../RULES/
- محل قرارگیری makefileها (قوانین واردشده)
- rules.top
- قوانین الزامی include (مورد نیاز برای راهاندازی قوانین پایه)
- rules.aux
- قوانین مورد نیاز برای نصب یک فایل کمکی غیرمحلی
- rules.cmd
- قوانین مورد نیاز برای ساخت یک دستور معمولی (مانند /bin/sh)
- rules.drv
- قوانین مورد نیاز برای ساخت یک درایور دستگاه
- rules.lib
- قوانین مورد نیاز برای ساخت یک کتابخانه استاندارد (غیرمشترک)
- rules.loc
- قوانین مورد نیاز برای نصب یک فایل کمکی محلیسازیشده
- rules.man
- قوانین مورد نیاز برای نصب یک صفحه راهنمای محلیسازیشده
- rules.scr
- قوانین مورد نیاز برای نصب یک اسکریپت شل محلیسازیشده
- rules.shl
- قوانین مورد نیاز برای ساخت یک کتابخانه مشترک
- rules.mks
- قوانین مورد نیاز برای ساخت بیش از یک هدف در یک دایرکتوری مشخص
- rules.dir
- قوانین مورد نیاز برای ساخت هدفهایی که در زیردایرکتوریهای دایرکتوری جاری قرار دارند
- ...
- .../DEFAULTS/
- تعاریف پیشفرض برای معماریهای مختلف هدف در این دایرکتوری قرار دارند. شابلونهای برخی از معماریها را میتوان در دایرکتوری .../TEMPLATES/ یافت.
- .../TARGETS/
- تعاریف فهرست هدف برای معماریهای مختلف هدف در این دایرکتوری قرار دارند.
- .../TEMPLATES/
- شابلونهایی که باید در داخل پروژه استفاده شوند (اگر تنها makefile در آن دایرکتوری است به Makefile تغییر نام دهید، و اگر بیش از یک هدف در آن دایرکتوری وجود دارد به target.mk تغییر نام دهید)
- Defaults
- فایل Defaults برای دایرکتوری ریشه سورس
- Defaults.linux
- فایل Defaults برای linux. این باید در دایرکتوری .../DEFAULTS/ نصب شود.
- Makefile.root
- فایل Makefile برای دایرکتوری ریشه سورس
- Makefile.aux
- فایل Makefile برای یک فایل کمکی غیرمحلی
- Makefile.cmd
- فایل Makefile برای یک دستور معمولی (مانند /bin/sh)
- Makefile.lib
- فایل Makefile برای یک کتابخانه استاندارد (غیرمشترک)
- Makefile.loc
- فایل Makefile برای یک فایل کمکی محلیسازیشده
- Makefile.man
- فایل Makefile برای یک صفحه راهنمای محلیسازیشده
- Makefile_de.man
- فایل Makefile برای یک صفحه راهنمای محلیسازیشده در لوکال آلمانی
- Makefile.scr
- فایل Makefile برای یک اسکریپت شل محلیسازیشده
- Makefile.shl
- فایل Makefile برای یک کتابخانه مشترک
- Makefile.drv
- فایل Makefile برای یک درایور دستگاه
- Makefile.mks
- فایل Makefile برای بیش از یک هدف در یک دایرکتوری مشخص
- Makefile.dir
- فایل Makefile برای هدفهایی که در زیردایرکتوریهای دایرکتوری جاری قرار دارند
- ...
- .../cmd/
- درخت سورس برای دستورات عادی
- Makefile
- فایل makefile برای زیردایرکتوری cmd
- Targetdirs.sun4m
- فایلی شامل فهرستی از دایرکتوریها مانند myprog (به زیر نگاه کنید) که برای آن معماری خاص مورد نیاز هستند.
- myprog/
- دایرکتوری محل قرارگیری سورسهای یک دستور خاص
- Makefile
- فایل makefile برای myprog
- Makefile.man
- فایل makefile برای صفحه راهنمای myprog
- mprog.c
- سورس برای myprog
- mprog.tr
- سورس troff برای صفحه راهنمای myprog
- OBJ/
- دایرکتوری محل قرارگیری زیردایرکتوریهای ویژه سیستم
- sparc-sunos5-cc/
- دایرکتوری باینریهای متعلق به یک سیستم خاص
- ...
- ...
- ...
- .../lib/
- دایرکتوری محل قرارگیری سورسهای کتابخانهها
- Makefile
- فایل makefile برای زیردایرکتوری lib
- Targetdirs.sun4m
- فایلی شامل فهرستی از دایرکتوریها مانند libfoo (به زیر نگاه کنید) که برای آن معماری خاص مورد نیاز هستند.
- libfoo/
- دایرکتوری محل قرارگیری تمام فایلهای سورس libfoo
- ...
- .../kernel
- دایرکتوری ماژولهای هسته
- Makefile
- فایل makefile برای زیردایرکتوری kernel
- Targetdirs.sun4m
- فایلی شامل فهرستی از دایرکتوریها مانند drv (به زیر نگاه کنید) که برای آن معماری خاص مورد نیاز هستند.
- drv/
- دایرکتوری محل قرارگیری درایورها
- Makefile
- فایل makefile برای زیردایرکتوری drv
- Targetdirs.sun4m
- فایلی شامل فهرستی از دایرکتوریها مانند mydrv (به زیر نگاه کنید) که برای آن معماری خاص مورد نیاز هستند.
- mydrv/
- سورس برای یک درایور خاص
- ...
- ...
- .../include
- دایرکتوری برای فایلهای include سراسری که در آن پروژه استفاده میشوند
- .../bins
- دایرکتوری برای برنامههای باینری که حین کامپایل پروژه ایجاد شده یا مورد نیاز هستند
- sparc-sunos5-cc/
- دایرکتوری باینریهای متعلق به یک سیستم خاص
- ...
- .../libs
- دایرکتوری برای کتابخانههایی که حین کامپایل پروژه ایجاد شده یا مورد نیاز هستند
- sparc-sunos5-cc/
- دایرکتوری کتابخانههای متعلق به یک سیستم خاص
- ...
- .../incs
- دایرکتوری برای فایلهای include که حین کامپایل پروژه ایجاد شده یا مورد نیاز هستند
- sparc-sunos5-cc/
- دایرکتوری فایلهای include متعلق به یک سیستم خاص
- ...
- ...
نویسنده (AUTHOR)
Joerg Schilling Seestr. 110 D-13353 Berlin Germany
گزارش اشکالات و پیشنهادات را ایمیل کنید به:
joerg@schily.isdn.cs.tu-berlin.de یا js@cs.tu-berlin.de یا jes@fokus.gmd.de
| 14. February 1997 | Joerg Schilling |