موضوع مقاله: ساخت (نرم‌افزار) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ساخت (نرم‌افزار) | مقدمه: در توسعه نرم‌افزار، ساخت ابزاری برای ساختن اتوماتیک فایلهای اجرایی از کد منبع است. | ## بخش 1: ساخت (نرم‌افزار) | فایلی که Makefile(سیسیتم یونیکسی) خوانده می‌شود روند کامپایل قطعات پروژه را بر اساس پیش‌نیازهای آن معلوم می‌کند. مقدمه قوی‌ترین ابزار برنامه‌نویسان برای جلوگیری از پیچیدگی‌های بیش از حد در پروژه‌ها استفاده از روش برنامه‌نویسی ماژولار (Modular) است. در این روش بخش‌های مختلف پروژه به صورت ماژول‌های مجزا قابل کامپایل هستند؛ ولی از طرفی هم عملیات کامپایل تک‌تک ماژول‌ها و چسباندن نهایی آن‌ها به یکدیگر، فرایندی زمان‌بر و پراشتباه و درد سر ساز است است. خوشبختانه ابزار ساخت برای تسهیل این مراحل و خودکارسازی این فرایند ساخته شده‌است. شما می‌توانید در هر کاری که در آن نیاز به بروزرسانی بعضی فایل‌ها متناسب با تغییر در فایل‌های دیگر است از ساخت استفاده کنید. به‌طور مثال معمولاً در یک برنامه رایانه‌ای نیاز است از کدهای منبع فایل‌های آبجکت و سپس از این فایل‌های آبجکت، فایل اجرایی ساخته شود. وقتی شما برنامه‌ای می‌نویسید، باید برای آن یک Makefile هم درست کنید و سپس برای کامپایل و نصب آن از ساخت کمک می‌گیرید. ساخت به‌طور خودکار تشخیص می‌دهد چه قسمت‌هایی از یک برنامهٔ بزرگ به چه صورت باید کامپایل شوند. همچنین می‌توان از آن برای کامپایل برنامه‌ها به هر زبانی که نوشته شده‌اند استفاده کرد، به‌شرط آنکه کامپایلر آن زبان توانایی اجرا از طریق پوسته (Shell) را داشته‌باشد. | ## بخش 2: ساخت (نرم‌افزار) | قابل ذکر است که ابزار ساخت به‌طور گسترده‌ای به‌خصوص در سیستم‌های مبتنی بر یونیکس استفاده می‌شود. قابلیت‌های ساخت ساخت این امکان را برای کاربر نهایی فراهم می‌کند که حتی بدون داشتن اطلاعات فنی زیاد بتواند برنامه را کامپایل و نصب کند. زیرا شما جزئیات کامپایل و نصب برنامه را در Makefile نوشته‌اید و دیگر نیازی نیست که کاربر آن هارا بنویسد. وقتی از بین کدهای منبع یک پروژه تعدادی از آن‌ها تغییر کند، ساخت به‌طور اتوماتیک تشخیص می‌دهد چه فایل‌هایی باید بروز شوند. فقط فایل‌هایی بروز می‌شوند که به‌طور مستقیم یا غیرمستقیم به تغییرات داده شده ربط داشته باشند. ساخت از طریق آخرین زمان تغییر فایل‌ها تشخیص می‌دهد که چه قسمت‌هایی باید دوباره بروز شوند. به فایلهایی که باید ساخته شوند هدف (Target) گفته می‌شود و ممکن است وابسته به فایل (های) دیگری باشد. متغیرها برای نسبت دادن مقادیر متنی به نامی مشخص است؛ و برای رجوع به آن مقدار متنی، می‌توان از نام متغیر استفاده کرد. یک مثال نوشتن نام تمام فایل‌های آبجکت مورد استفاده در برنامه درون یک متغیر با نام objects است. | ## بخش 3: ساخت (نرم‌افزار) | (برای رجوع ساده‌تر) رهنمون‌ها فرامینی هستند برای اجرای کارهای خاص که در هنگام پردازش Makefile مورد استفاده قرار می‌گیرند. در این فهرست باید تمام فایل‌های مورد نیاز (کدمنبع یا هر نوع فایل دیگری) که برای ساخت هدف مورد نیاز است تعریف شود. برای ساخت یک هدف ممکن است چندین دستور نیاز باشد که باید در خطوط جداگانه نوشته شوند. توجه کنید که حتماً باید در ابتدای دستورات یک کارکتر تب (TAB) برای فاصله گذاری صحیح قرار دهید. اگر نیاز به اضافه کردن فایل آبجکت (objdect)جدیدی به پروژه باشد، ما باید در تمام مکان‌های مورد نیاز آن را اضافه کنیم. متغیرها این امکان را می‌دهند تا بتوانیم متنی را در آن‌ها ذخیره کنیم و در چندین مکان مورد استفاده قرار دهیم. اما قبل از اینکه دستورات موجود در این هدف اجرا شوند، Make باید تمام پیش‌نیازهای مربوط به آن هدف را پردازش کند. هر یک از این پیش‌نیازها نیز برای خود Rule دارند که برای ساخت آن‌ها پردازش خواهد شد. | ## جمع‌بندی | به‌طور مثال در یک برنامه کامپایل دوباره یک فایل آبجکت زمانی اتفاق می‌افتد که فایل سورس یا هیدر مربوط به آن بعد از ساخت فایل آبجکت تغییر کرده باشند یا اساساً فایل آبجکت هنوز ساخته نشده‌باشد.