OCAMLDEP(1) General Commands Manual OCAMLDEP(1)

ocamldep - تولیدکننده وابستگی‌ها برای OCaml

ocamldep [ options ] filename ...

دستور ocamldep(1) مجموعه‌ای از فایل‌های منبع OCaml (فایل‌های .ml و .mli) را برای ارجاعات به واحدهای کامپایل خارجی اسکن کرده، و خطوط وابستگی را در قالبی مناسب برای ابزار make(1) تولید می‌کند. این کار تضمین می‌کند که make فایل‌های منبع را به ترتیب صحیح کامپایل کند و در صورت تغییر یک فایل منبع، فایل‌هایی را که نیاز به کامپایل مجدد دارند بازکامپایل نماید.

نحوه استفاده متداول به این صورت است:

ocamldep options *.mli *.ml > .depend

که در آن depend. فایلی است که باید شامل وابستگی‌ها باشد.

وابستگی‌ها هم برای کامپایل با کامپایلر بایت‌کد ocamlc(1) و هم با کامپایلر کد بومی ocamlopt(1) تولید می‌شوند.

گزینه‌های خط فرمان زیر توسط ocamldep(1) شناسایی می‌شوند.

نمایش نام فایل‌ها به صورت مطلق در پیام‌های خطا.
عدم تلاش برای نمایش نام فایل‌ها به صورت مطلق در پیام‌های خطا (پیش‌فرض).
تولید وابستگی‌ها بر روی تمامی فایل‌های مورد نیاز، به جای فرض وابستگی‌های ضمنی.
امکان بازگشت به تقریب مبتنی بر تحلیل‌گر لغوی (lexer) هنگام شکست در تجزیه.
برای فایل‌های بعدی، وابستگی‌های به تعویق افتاده برای نام‌های مستعار ماژول گنجانده نشود. این گزینه فرض می‌کند که آن‌ها با استفاده از گزینه‌های "-no-alias-deps -w -49" کامپایل می‌شوند، و آن فایل‌ها یا رابط کاربری آن‌ها با گزینه "-map" هنگام محاسبه وابستگی‌ها برای سایر فایل‌ها ارسال می‌شوند. همچنین توجه داشته باشید برای اینکه وابستگی‌ها در پیاده‌سازی یک فایل map صحیح باشند، رابط آن نباید هیچ‌یک از نام‌های مستعار موجود در آن را محدود (coerce) کند.
دامپ کردن نگاشت وابستگی‌های به تعویق افتاده برای هر فایل map.
افزودن دایرکتوری داده‌شده به فهرست دایرکتوری‌های مورد جستجو برای فایل‌های منبع. اگر فایل منبع foo.ml به یک واحد کامپایل خارجی Bar اشاره کند، وابستگی به رابط آن واحد یعنی bar.cmi تنها در صورتی تولید می‌شود که منبع bar در دایرکتوری جاری یا در یکی از دایرکتوری‌های مشخص‌شده با -I یافت شود. در غیر این صورت، فرض می‌شود Bar یک ماژول از کتابخانه استاندارد است و هیچ وابستگی‌ای تولید نمی‌شود. برای برنامه‌هایی که در چندین دایرکتوری گسترده شده‌اند، توصیه می‌شود به ocamldep(1) همان گزینه‌های -I داده شود که به کامپایلر ارسال می‌شوند.
دایرکتوری کاری جاری به فهرست دایرکتوری‌های include اضافه نشود.
پردازش file به عنوان یک فایل .ml.
پردازش file به عنوان یک فایل .mli.
تنظیم کلمات کلیدی مطابق با مشخصه version+list.
خواندن و انتشار وابستگی‌های به تعویق افتاده برای نام‌های مستعار ماژول در file، به طوری که فایل‌های بعدی در صورت استفاده از ماژول‌های مستعار صادرشده، به آن‌ها وابسته باشند.
در نظر گرفتن پسوند داده‌شده (همراه با نقطه ابتدایی) به عنوان مترادفی برای .ml.
در نظر گرفتن پسوند داده‌شده (همراه با نقطه ابتدایی) به عنوان مترادفی برای .mli.
تولید خروجی وابستگی‌های خام به فرمت filename: Module1 Module2 ... ModuleN که در آن Module1, ..., ModuleN نام واحدهای کامپایلی هستند که درون فایل filename به آن‌ها ارجاع داده شده است، اما این نام‌ها به نام فایل‌های منبع تبدیل نمی‌شوند. چنین وابستگی‌های خامی نمی‌توانند توسط make(1) استفاده شوند، اما می‌توانند توسط سایر ابزارها مانند Omake(1) پس‌پردازش شوند.
تولید وابستگی‌ها برای یک برنامه کد بومی خالص (بدون نسخه بایت‌کد). هنگامی که یک فایل پیاده‌سازی (فایل .ml) فاقد فایل رابط صریح (فایل .mli) باشد، ocamldep(1) وابستگی‌هایی را به فایل کامپایل‌شده بایت‌کد (فایل .cmo) ایجاد می‌کند تا تغییرات رابط را منعکس کند. این امر می‌تواند باعث کامپایل مجدد غیرضروری بایت‌کد برای برنامه‌هایی شود که تنها به صورت کد بومی کامپایل می‌شوند. فلگ -native باعث می‌شود وابستگی‌ها به جای فایل‌های .cmo، روی فایل‌های کامپایل‌شده بومی (.cmx) تولید شوند. (اگر تمامی فایل‌های منبع دارای فایل‌های رابط صریح .mli باشند، این فلگ تفاوتی ایجاد نمی‌کند).
خروجی دادن یک خط برای هر فایل، بدون در نظر گرفتن طول آن.
فرض بر اینکه ماژول module پیش از تجزیه هر یک از فایل‌های بعدی باز (open) شده است.
باعث می‌شود ocamldep(1) دستور command مشخص‌شده را به عنوان یک پیش‌پردازنده برای هر فایل منبع فراخوانی کند.
هدایت درخت نحو انتزاعی از طریق پیش‌پردازنده command.
تولید وابستگی‌ها برای فایل‌های پلاگین بومی (.cmxs) علاوه بر فایل‌های کامپایل‌شده بومی (.cmx).
(در ویندوز) استفاده از اسلش / به جای بک‌اسلش \ در مسیر فایل‌ها. در یونیکس، این گزینه هیچ اثری ندارد.
(در ویندوز) حفظ هرگونه بک‌اسلش \ در مسیر فایل‌ها. در یونیکس، این گزینه هیچ اثری ندارد.
مرتب‌سازی فایل‌ها بر اساس وابستگی‌های آن‌ها.
چاپ رشته نسخه و خروج.
چاپ شماره نسخه کوتاه و خروج.
خواندن آرگومان‌های خط فرمان اضافی که با خط جدید جدا شده‌اند از file.
خواندن آرگومان‌های خط فرمان اضافی که با نویسه NUL جدا شده‌اند از file.
نمایش خلاصه کوتاهی از نحوه استفاده و خروج.

ocamlc(1), ocamlopt(1).
The OCaml user's manual, فصل "Dependency generator".