.TH WINEMAKER 1 "Jan 2012" "Wine 11.17" "Wine Developers Manual" .SH "نام (NAME)" winemaker \- ایجاد زیرساخت ساخت برای کامپایل برنامه‌های ویندوز در یونیکس .SH "خلاصه دستور (SYNOPSIS)" .B "winemaker " [ .BR "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix " ] .br [ .BR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase " ] .br [ .BR "--lower-include " "| " "--nolower-include " ]\ [ " --mfc " "| " "--nomfc " ] .br [ .BR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib " ] .br [ .BI "-D" macro "\fR[=\fIdefn\fR] ] [" "\ " "-I" "dir\fR ]\ [ " "-P" "dir\fR ] [ " "-i" "dll\fR ] [ " "-L" "dir\fR ] [ " "-l" "library " ] .br [ .BR "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target \fIname\fR " ] .br [ .BR "--generated-files " "] [ " "--nogenerated-files " "] .br [ .BR "--wine32 " "] .br .IR " work_directory" " | " "project_file" " | " "workspace_file" .SH "توضیحات (DESCRIPTION)" .PP .B winemaker یک اسکریپت پرل (perl) است که برای کمک به راه‌اندازی اولیه فرآیند تبدیل کدهای منبع ویندوز به برنامه‌های Winelib طراحی شده است. .PP برای انجام این کار، \fBwinemaker\fR می‌تواند عملیات زیر را انجام دهد: .PP - تغییر نام فایل‌ها و دایرکتوری‌های منبع به حروف کوچک در صورتی که در طول انتقال، همگی به حروف بزرگ تبدیل شده باشند. .PP - انجام تبدیل قالب DOS به یونیکس (CRLF به LF). .PP - بررسی دستورات include و ارجاعات فایل‌های منبع (resource) برای جایگزینی بک‌اسلش‌ها با اسلش. .PP - در طول مرحله بالا، \fBwinemaker\fR همچنین یک جستجوی غیرحساس به حروف کوچک و بزرگ برای فایل ارجاع‌شده در مسیر include انجام می‌دهد و در صورت نیاز، دستور include را با حروف بزرگ و کوچک صحیح بازنویسی می‌کند. .PP - برنامه \fBwinemaker\fR همچنین موارد خاص‌تر دیگر مانند استفاده از \fI#pragma pack\fR، استفاده از \fIafxres.h\fR در پروژه‌های غیر MFC و موارد دیگر را بررسی می‌کند. هرگاه با مورد غیرمعمولی روبرو شود، در مورد آن هشدار می‌دهد. .PP - برنامه \fBwinemaker\fR می‌تواند یک درخت دایرکتوری کامل را یک‌باره پیمایش کند، فایل‌های اجرایی و کتابخانه‌هایی را که برای ساخت آن‌ها تلاش می‌کنید حدس بزند، آن‌ها را با فایل‌های منبع تطبیق دهد و \fIMakefile\fR متناظر را تولید کند. .PP - در نهایت \fBwinemaker\fR یک \fIMakefile\fR سراسری برای استفاده معمول تولید می‌کند. .PP - برنامه \fBwinemaker\fR پروژه‌های مبتنی بر MFC را می‌شناسد و فایل‌های سفارشی‌شده برای آن‌ها ایجاد می‌کند. .PP - برنامه \fBwinemaker\fR می‌تواند فایل‌های پروژه موجود را بخواند. این برنامه از فایل‌های dsp، dsw، vcproj و sln پشتیبانی می‌کند. .PP .SH "گزینه‌ها (OPTIONS)" .TP .B --nobanner غیرفعال کردن چاپ بنر آغازین. .TP .B --backup تهیه نسخه پشتیبان از تمام فایل‌های منبع تغییریافته. این حالت پیش‌فرض است. .TP .B --nobackup عدم تهیه نسخه پشتیبان از فایل‌های منبع تغییریافته. .TP .B --nosource-fix عدم تلاش برای اصلاح فایل‌های منبع (مانند تبدیل DOS به یونیکس). این گزینه در صورتی که فایل‌ها فقط‌خواندنی باشند، از بروز خطا جلوگیری می‌کند. .TP .B --lower-all تغییر نام تمام فایل‌ها و دایرکتوری‌ها به حروف کوچک. .TP .B --lower-uppercase فقط تغییر نام فایل‌ها و دایرکتوری‌هایی که نام آن‌ها کاملاً با حروف بزرگ است. به عنوان مثال، \fIHELLO.C\fR تغییر نام می‌یابد اما \fIWorld.c\fR تغییر نمی‌کند. .TP .B --lower-none عدم تغییر نام فایل‌ها و دایرکتوری‌ها به حروف کوچک. توجه داشته باشید که این گزینه مانع از تغییر نام فایل در صورتی که پسوند آن بدون تغییر قابل پردازش نباشد (مانند ‎".Cxx"‎) نمی‌شود. این حالت پیش‌فرض است. .TP .B --lower-include هنگامی که فایل متناظر با یک دستور include (یا سایر انواع ارجاع به فایل برای فایل‌های منبع) یافت نشود، نام آن فایل را به حروف کوچک تبدیل می‌کند. این حالت پیش‌فرض است. .TP .B --nolower-include عدم تغییر دستور include در صورتی که فایل ارجاع‌شده یافت نشود. .TP .BR "--guiexe " "| " "--windows" هنگامی که یک هدف اجرایی یا هدفی با نوع ناشناخته یافت شود، آن را یک برنامه گرافیکی (GUI) در نظر می‌گیرد. این حالت پیش‌فرض است. .TP .BR "--cuiexe " "| " "--console" هنگامی که یک هدف اجرایی یا هدفی با نوع ناشناخته یافت شود، آن را یک برنامه کنسولی (CUI) در نظر می‌گیرد. .TP .B --dll هنگامی که هدفی با نوع ناشناخته یافت شود (یعنی زمانی که \fBwinemaker\fR نتواند تشخیص دهد که هدف یک فایل اجرایی، dll یا کتابخانه ایستا است)، آن را یک dll در نظر می‌گیرد. .TP .B --lib هنگامی که هدفی با نوع ناشناخته یافت شود (یعنی زمانی که \fBwinemaker\fR نتواند تشخیص دهد که هدف یک فایل اجرایی، dll یا کتابخانه ایستا است)، آن را یک کتابخانه ایستا در نظر می‌گیرد. .TP .B --mfc مشخص می‌کند که اهداف مبتنی بر MFC هستند. در این حالت، \fBwinemaker\fR مسیرهای include و کتابخانه‌ها را متناسب با آن تنظیم کرده و هدف را با کتابخانه MFC پیوند (link) می‌دهد. .TP .B --nomfc مشخص می‌کند که اهداف مبتنی بر MFC نیستند. این گزینه استفاده از کتابخانه‌های MFC را غیرفعال می‌کند، حتی اگر \fBwinemaker\fR با فایل‌های \fIstdafx.cpp\fR یا \fIstdafx.h\fR روبرو شود که در صورت عدم تعیین \fB--nomfc\fR یا \fB--mfc\fR باعث فعال‌سازی خودکار MFC می‌شدند. .TP .BI -D macro "\fR[\fB=\fIdefn\fR]" تعریف ماکروی مشخص‌شده را به فهرست سراسری تعاریف ماکرو اضافه می‌کند. .TP .BI -I dir دایرکتوری مشخص‌شده را به مسیر سراسری include اضافه می‌کند. .TP .BI -P dir دایرکتوری مشخص‌شده را به مسیر سراسری dll اضافه می‌کند. .TP .BI -i dll کتابخانه Winelib مشخص‌شده را به فهرست سراسری کتابخانه‌های Winelib جهت وارد کردن (import) اضافه می‌کند. .TP .BI -L dir دایرکتوری مشخص‌شده را به مسیر سراسری کتابخانه‌ها اضافه می‌کند. .TP .BI -l library کتابخانه مشخص‌شده را به فهرست سراسری کتابخانه‌ها جهت پیوند دادن (link) اضافه می‌کند. .TP .B --nodlls عدم استفاده از مجموعه استاندارد کتابخانه‌های Winelib برای وارد کردن. به این معنی که هر DLL مورد استفاده در کد شما باید به صراحت با گزینه \fB-i\fR مشخص شود. مجموعه استاندارد کتابخانه‌ها عبارتند از: \fIodbc32.dll\fR، \fIodbccp32.dll\fR، \fIole32.dll\fR، \fIoleaut32.dll\fR و \fIwinspool.drv\fR. .TP .B --nomsvcrt تنظیم گزینه‌هایی برای اعلام به \fBwinegcc\fR جهت عدم کامپایل در برابر msvcrt. در صورتی که فایل‌های cpp شما شامل \fI\fR هستند از این گزینه استفاده کنید. .TP .B --interactive استفاده از حالت تعاملی. در این حالت \fBwinemaker\fR از شما می‌خواهد تا فهرست اهداف هر دایرکتوری را تایید کرده و سپس گزینه‌های خاص مربوط به دایرکتوری و اهداف را مشخص کنید. .TP .BI --single-target " name" مشخص می‌کند که تنها یک هدف به نام \fIname\fR وجود دارد. .TP .B --generated-files تولید فایل \fIMakefile\fR. این حالت پیش‌فرض است. .TP .B --nogenerated-files فایل \fIMakefile\fR را تولید نمی‌کند. .TP .B --wine32 تولید یک هدف ۳۲ بیتی. این گزینه در سیستم‌های wow64 کاربرد دارد. بدون این گزینه، از معماری پیش‌فرض استفاده می‌شود. .SH "مثال‌ها (EXAMPLES)" .PP یک نمونه استفاده معمول از \fBwinemaker\fR: .PP $ winemaker --lower-uppercase -DSTRICT . .PP دستور فوق به \fBwinemaker\fR اعلام می‌کند که دایرکتوری جاری و زیردایرکتوری‌های آن را برای یافتن فایل‌های منبع پیمایش کند. هرگاه فایل یا دایرکتوری پیدا کند که نام آن تماماً با حروف بزرگ است، آن را به حروف کوچک تغییر نام دهد. سپس باید تمام این فایل‌های منبع را جهت کامپایل با Winelib اصلاح کرده و \fIMakefile\fRها را تولید کند. گزینه \fB-DSTRICT\fR مشخص می‌کند که ماکروی \fBSTRICT\fR باید هنگام کامپایل این منابع تنظیم شود. در نهایت یک \fIMakefile\fR ایجاد خواهد شد. .PP گام بعدی اجرای دستور زیر خواهد بود: .PP $ make .PP اگر در این مرحله با خطاهای کامپایل مواجه شدید (که برای پروژه‌های با اندازه مناسب کاملاً محتمل است)، باید راهنمای کاربری Winelib را بررسی کنید تا نکاتی برای رفع آن‌ها بیابید. .PP برای یک پروژه مبتنی بر MFC باید در عوض دستورات زیر را اجرا کنید: .PP $ winemaker --lower-uppercase --mfc . .br $ make .PP برای یک فایل پروژه موجود باید دستورات زیر را اجرا کنید: .PP $ winemaker myproject.dsp .br $ make .PP .SH "اشکالات و کارهای آینده (TODO / BUGS)" در برخی موارد لازم است \fIMakefile\fR یا فایل‌های منبع را به صورت دستی ویرایش کنید. .PP با فرض اینکه فایل اجرایی یا کتابخانه ویندوز در دسترس باشد، می‌توانیم از \fBwinedump\fR برای تعیین نوع فایل اجرایی (گرافیکی یا کنسولی)، کتابخانه‌هایی که با آن‌ها پیوند داده شده و توابعی که صادر (export) می‌کند (برای کتابخانه‌ها) استفاده کنیم. سپس می‌توانیم تمام این تنظیمات را برای هدف متناظر در Winelib بازیابی کنیم. .PP علاوه بر این، \fBwinemaker\fR در یافتن کتابخانه حاوی فایل اجرایی چندان خوب عمل نمی‌کند: این کتابخانه یا باید در دایرکتوری جاری باشد یا در .BR LD_LIBRARY_PATH . .PP برنامه \fBwinemaker\fR هنوز از فایل‌های پیام و کامپایلر پیام پشتیبانی نمی‌کند. .PP اشکالات را می‌توان در .UR https://bugs.winehq.org .B سامانه پیگیری اشکالات Wine .UE گزارش کرد. .SH "نویسندگان (AUTHORS)" François Gouget برای CodeWeavers .br Dimitrie O. Paun .br André Hentschel .SH "در دسترس بودن (AVAILABILITY)" .B winemaker بخشی از توزیع Wine است که از طریق WineHQ، یعنی .UR https://www.winehq.org .B پایگاه اصلی توسعه Wine .UE در دسترس است. .SH "همچنین ببینید (SEE ALSO)" .BR wine (1), .br .UR https://www.winehq.org/help .B مستندات و پشتیبانی Wine .UE .