ابزارهای خودکار گنو یا سیستم ساخت گنو ( به انگلیسی: GNU Autotools یا GNU Build System ) ، یک مجموعه از ابزارهای برنامه نویسی طراحی شده است که برای کمک به ساخت بسته های کد منبع قابل حمل برای بسیاری از سیستم های شبه یونیکس ایجاد شده است. GNU مخفف بازگشتی «GNU's Not Unix» است.
ایجاد یک برنامه نرم افزاری قابل حمل می تواند دشوار باشد: کامپایلرهای C از سیستمی به سیستمی دیگر متفاوت است. برخی توابع کتابخانه ای خاص در برخی سیستم ها وجود ندارند. فایل های هدر ممکن است نام های متفاوتی داشته باشند. یکی از راه های رسیدگی به این مسئله نوشتن کدهای شرطی است، با بلوک های کد انتخاب شده توسط دستورالعمل های پیش پردازنده ( ifdef# ) اما این روش به دلیل طیف گسترده ای از محیط های ساخت به سرعت غیرقابل کنترل می شود. ابزارهای خودکار به منظور رسیدگی به این مشکل با مدیریت بیشتر ایجاد شده اند.
ابزارهای خودکار بخشی از زنجیره ابزار گنو هستند و به طور گسترده ای در بسیاری از نرم افزارهای رایگان و بسته های منبع آزاد مورد استفاده قرار می گیرند. ابزارهای ایجاد کنندهٔ آن نرم افزارهای رایگان، تحت پروانه عمومی همگانی با استثنائات خاص مجوز[ ۱] [ ۲] که استفاده از آن را با اختصاصی کردن مالکیت برنامه فراهم کرده است، هستند.
سیستم ساخت گنو، ساخت بسیاری از برنامه ها را با استفاده از یک فرایند دو مرحله ای امکان پذیر می کند: پیکر بندی و سپس ساخت. [ ۳]
ابزارهای خودکار متشکل از برنامه های کاربردی گنو، پیکربندی خودکار، ساخت خودکار و ابزارهای لیب[ ۴] و همچنین ابزارهای مرتبط ای که مرتباً در کنار آنها استفاده می شوند شامل برنامهٔ ساخت گنو، gettext گنو، پیکربندی pkg و مجموعه کامپایلرهای گنو که اغلب GCC نیز نامیده می شوند.
پیکربندی خودکار یک اسکریپت configure را بر اساس محتویات یک فایل configure. ac که بخش خاصی از بدنهٔ کد منبع را توصیف و مشخص می کند، ایجاد می کند. اسکریپت configure ، هنگامی که اجرا می شود، محیط ساخت را اسکن می کند و یک اسکریپت فرعی config. status ایجاد می کند، که به نوبه خود، سایر فایل های ورودی و معمولاً Makefile. in را به فایل های خروجی ( Makefile ) تبدیل می کند که برای آن محیط ساخت، مناسب است. سرانجام برنامه make از Makefile برای تولید برنامه های اجرایی از کد منبع استفاده می کند.

این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفایجاد یک برنامه نرم افزاری قابل حمل می تواند دشوار باشد: کامپایلرهای C از سیستمی به سیستمی دیگر متفاوت است. برخی توابع کتابخانه ای خاص در برخی سیستم ها وجود ندارند. فایل های هدر ممکن است نام های متفاوتی داشته باشند. یکی از راه های رسیدگی به این مسئله نوشتن کدهای شرطی است، با بلوک های کد انتخاب شده توسط دستورالعمل های پیش پردازنده ( ifdef# ) اما این روش به دلیل طیف گسترده ای از محیط های ساخت به سرعت غیرقابل کنترل می شود. ابزارهای خودکار به منظور رسیدگی به این مشکل با مدیریت بیشتر ایجاد شده اند.
ابزارهای خودکار بخشی از زنجیره ابزار گنو هستند و به طور گسترده ای در بسیاری از نرم افزارهای رایگان و بسته های منبع آزاد مورد استفاده قرار می گیرند. ابزارهای ایجاد کنندهٔ آن نرم افزارهای رایگان، تحت پروانه عمومی همگانی با استثنائات خاص مجوز[ ۱] [ ۲] که استفاده از آن را با اختصاصی کردن مالکیت برنامه فراهم کرده است، هستند.
سیستم ساخت گنو، ساخت بسیاری از برنامه ها را با استفاده از یک فرایند دو مرحله ای امکان پذیر می کند: پیکر بندی و سپس ساخت. [ ۳]
ابزارهای خودکار متشکل از برنامه های کاربردی گنو، پیکربندی خودکار، ساخت خودکار و ابزارهای لیب[ ۴] و همچنین ابزارهای مرتبط ای که مرتباً در کنار آنها استفاده می شوند شامل برنامهٔ ساخت گنو، gettext گنو، پیکربندی pkg و مجموعه کامپایلرهای گنو که اغلب GCC نیز نامیده می شوند.
پیکربندی خودکار یک اسکریپت configure را بر اساس محتویات یک فایل configure. ac که بخش خاصی از بدنهٔ کد منبع را توصیف و مشخص می کند، ایجاد می کند. اسکریپت configure ، هنگامی که اجرا می شود، محیط ساخت را اسکن می کند و یک اسکریپت فرعی config. status ایجاد می کند، که به نوبه خود، سایر فایل های ورودی و معمولاً Makefile. in را به فایل های خروجی ( Makefile ) تبدیل می کند که برای آن محیط ساخت، مناسب است. سرانجام برنامه make از Makefile برای تولید برنامه های اجرایی از کد منبع استفاده می کند.


wiki: ابزارهای خودکار گنو