.\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "hare-build" "1" "2026-06-01" .PP .SH "نام (NAME)" .PP hare build \- کامپایل یک برنامه یا ماژول Hare .PP .SH "خلاصه دستور (SYNOPSIS)" .PP \fBhare build\fR [-hFqv] .br [-a \fIarch\fR] .br [-D \fIident[:type]=value\fR] .br [-j \fIjobs\fR] .br [-L \fIlibdir\fR] .br [-l \fIlibname\fR] .br [-N \fInamespace\fR] .br [-o \fIpath\fR] .br [-R] .br [-T \fItagset\fR] .br [-t \fItype\fR] .br [\fIpath\fR] .PP .SH "توضیحات (DESCRIPTION)" .PP دستور \fBhare build\fR یک برنامه یا ماژول Hare را کامپایل می‌کند.\& آرگومان \fIpath\fR مسیر یک فایل منبع Hare یا پوشه‌ای است که شامل یک ماژول Hare باشد (نگاه کنید به \fBhare-module\fR(5)).\& اگر هیچ مسیری مشخص نشود، ماژول Hare موجود در دایرکتوری کاری فعلی ساخته می‌شود.\& .PP .SH "گزینه‌ها (OPTIONS)" .PP \fB-h\fR .RS 4 متن راهنما را چاپ می‌کند.\& .PP .RE \fB-F\fR .RS 4 برای محیط مستقل (غیرمیزبان / non-hosted) بیلد می‌کند.\& بخش \fBمحیط مستقل (FREESTANDING ENVIRONMENT)\fR را ببینید.\& .PP .RE \fB-q\fR .RS 4 به جز خطاها، در هنگام بیلد چیزی در stdout نمی‌نویسد.\& .PP .RE \fB-v\fR .RS 4 ثبت لاگ با جزئیات (verbose) را فعال می‌کند.\& برای افزایش سطح جزئیات، آن را دو بار مشخص کنید.\& .PP .RE \fB-a\fR \fIarch\fR .RS 4 معماری مورد نظر را برای کامپایل متقاطع (cross-compiling) تنظیم می‌کند.\& برای نام معماری‌های پشتیبانی‌شده به بخش \fBمعماری‌ها (ARCHITECTURES)\fR مراجعه کنید.\& .PP .RE \fB-D\fR \fIident[:type]=value\fR .RS 4 یک ثابت در سامانه انواع (type system) تعریف می‌کند.\& \fIident\fR به عنوان یک شناسه Hare (مانند "foo::bar::baz")، \fItype\fR به عنوان یک نوع Hare (مانند "str" یا "struct { x: int, y: int }")، و \fIvalue\fR به عنوان یک عبارت Hare (مانند "42") تجزیه می‌شود.\& برای جلوگیری از تداخل میان نحو شل و نحو Hare، نسبت به گریز دادن (escaping) کاراکترهای لازم دقت کنید.\& .PP .RE \fB-j\fR \fIjobs\fR .RS 4 حداکثر تعداد کارهایی را که باید به‌صورت موازی اجرا شوند تعیین می‌کند.\& مقدار پیش‌فرض برابر با تعداد پردازنده‌های در دسترس سیستم میزبان است.\& .PP .RE \fB-L\fR \fIlibdir\fR .RS 4 یک دایرکتوری را به مسیر جستجوی کتابخانه‌های پیونددهنده (linker) اضافه می‌کند.\& .PP .RE \fB-l\fR \fIlibname\fR .RS 4 پیوند دادن (link) با کتابخانه سیستمی مشخص‌شده.\& نام مستقیماً به پیونددهنده فرستاده می‌شود.\& پیوند دادن با هر کتابخانه‌ای همچنین باعث پیوند با \fBlibc\fR(7) شده و تگ +libc را به برچسب‌های بیلد پیش‌فرض می‌افزاید (بخش \fBBUILD TAGS\fR در \fBhare-module\fR(5) را ببینید).\& .PP .RE \fB-N\fR \fInamespace\fR .RS 4 فضای نام (namespace) ماژول را بازنویسی (override) می‌کند.\& .PP .RE \fB-o\fR \fIpath\fR .RS 4 فایل خروجی را در مسیر داده‌شده تنظیم می‌کند.\& تنظیم مسیر روی \fB-\fR باعث نوشتن خروجی در stdout می‌شود.\& .PP .RE \fB-R\fR .RS 4 بیلد در حالت انتشار (release mode).\& در حالت دیباگ (پیش‌فرض)، ماژول ::debug به عنوان یک وابستگی وارد می‌شود که به طور خودکار تعدادی از قابلیت‌های اشکال‌زدایی زمان اجرا را در فایل اجرایی شما نصب می‌کند.\& برای جزئیات این قابلیت‌ها، مستندات این ماژول را ببینید.\& .PP .RE \fB-T\fR \fItagset\fR .RS 4 تنظیم یا حذف برچسب‌های بیلد (build tags).\& بخش \fBBUILD TAGS\fR در \fBhare-module\fR(5) را ببینید.\& .PP .RE \fB-t\fR \fItype\fR .RS 4 نوع بیلد را مشخص می‌کند.\& \fItype\fR باید یکی از مقادیر s، o یا bin، به ترتیب برای اسمبلی، شیء کامپایل‌شده (compiled object) یا باینری کامپایل‌شده باشد.\& نوع بیلد پیش‌فرض باینری کامپایل‌شده است.\& .PP .RE .SH "معماری‌ها (ARCHITECTURES)" .PP پرچم \fB-a\fR برای کامپایل متقاطع به یک معماری هدف متفاوت با معماری میزبان به کار می‌رود.\& در حال حاضر معماری‌های زیر پشتیبانی می‌شوند: .PP .PD 0 .IP \(bu 4 aarch64 .IP \(bu 4 riscv64 .IP \(bu 4 x86_64 .PD .PP سیستم معمولاً بر اساس هدف مورد نظر، مقادیر پیش‌فرض معقولی را برای ابزارهای \fBAR\fR، \fBAS\fR، \fBLD\fR و \fBCC\fR فراهم می‌کند.\& با این حال، ممکن است بخواهید خودتان این متغیرها را برای کنترل زنجیره ابزار متقاطع (cross toolchain) مورد استفاده تنظیم کنید.\& .PP .SH "محیط مستقل (FREESTANDING ENVIRONMENT)" .PP اگر دستور با \fB-F\fR اجرا شود، hare build یک محیط مستقل (freestanding) را هدف قرار می‌دهد.\& این کار اثرات زیر را به همراه دارد: .PP .PD 0 .IP \(bu 4 هیچ محدودیتی بر امضای "main" اعمال نمی‌شود .IP \(bu 4 مشخص کردن کتابخانه‌های خارجی با \fB-l\fR به‌صورت خودکار موارد زیر را انجام \fBنمی‌دهد\fR: .RS 4 .IP \(bu 4 پیوند با libc (در صورت نیاز \fB-lc\fR را دستی اضافه کنید) .IP \(bu 4 افزودن پرچم +libc (در صورت نیاز \fB-T+libc\fR را دستی اضافه کنید) .IP \(bu 4 استفاده از کامپایلر C برای پیوند دادن (در صورت نیاز از \fBLD=cc\fR استفاده کنید) .PD .PP .RE .SH "محیط (ENVIRONMENT)" .PP متغیرهای محیطی زیر بر اجرای \fBhare build\fR تأثیر می‌گذارند: .PP .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fBHARECACHE\fR T} T{ مسیر حافظه پنهان (cache) بیلد.\& پیش‌فرض برابر با \fB$XDG_CACHE_HOME/hare\fR، یا در صورت تنظیم نبودن \fB$XDG_CACHE_HOME\fR، برابر با \fB\(ti/.\&cache/hare\fR است.\& T} T{ \fBHAREPATH\fR T} T{ فهرست دایرکتوری‌ها برای جستجوی وابستگی‌های ماژول.\& به \fBhare-module\fR(5) مراجعه کنید.\& T} T{ \fBNO_COLOR\fR T} T{ هنگامی که روی یک رشته غیرخالی تنظیم شده باشد، تمام خروجی‌های رنگی را غیرفعال می‌کند.\& T} T{ \fBHAREC_COLOR\fR T} T{ هنگامی که روی 0 تنظیم شود، خروجی رنگی را برای \fBharec\fR غیرفعال می‌کند و وقتی روی هر مقدار دیگری تنظیم شود، آن را فعال می‌کند.\& این متغیر بر \fBNO_COLOR\fR اولویت دارد.\& T} T{ \fBHAREC\fR T} T{ نام دستور \fBharec\fR برای استفاده.\& T} T{ \fBHARECFLAGS\fR T} T{ پرچم‌های اضافی برای ارسال به \fBharec\fR.\& T} T{ \fBQBE\fR T} T{ نام دستور \fBqbe\fR برای استفاده.\& T} T{ \fBQBEFLAGS\fR T} T{ پرچم‌های اضافی برای ارسال به \fBqbe\fR.\& T} T{ \fBAR\fR T} T{ نام دستور \fBar\fR(1) برای استفاده.\& T} T{ \fBARFLAGS\fR T} T{ پرچم‌های اضافی برای ارسال به \fBar\fR(1).\& T} T{ \fBAS\fR T} T{ نام دستور \fBas\fR(1) برای استفاده.\& T} T{ \fBASFLAGS\fR T} T{ پرچم‌های اضافی برای ارسال به \fBas\fR(1).\& T} T{ \fBLD\fR T} T{ نام دستور \fBld\fR(1) برای استفاده.\& T} T{ \fBLDLINKFLAGS\fR T} T{ پرچم‌های اضافی برای ارسال به \fBld\fR(1).\& T} T{ \fBCC\fR T} T{ نام دستور \fBcc\fR(1) برای استفاده در هنگام پیوند کتابخانه‌های خارجی.\& T} T{ \fBLDFLAGS\fR T} T{ پرچم‌های پیونددهنده اضافی برای ارسال به \fBcc\fR(1).\& T} .TE .sp 1 .SH "همچنین ببینید (SEE ALSO)" .PP \fBhare-run\fR(1), \fBhare-test\fR(1), \fBhare-module\fR(5), \fBar\fR(1), \fBas\fR(1), \fBcc\fR(1), \fBld\fR(1)