SlideShare a Scribd company logo
1 of 10
Download to read offline
‫خدا‬ ‫نام‬ ‫به‬
Configure
:‫محدوده‬
‫فایل‬ ‫ایچاد‬ ‫نحوه‬configure‫و‬.Makefile am‫پروژه‬ ‫در‬PVM
‫تاريخچه‬:
‫ردیف‬‫نویسنده‬‫تاریخ‬‫ویرایش‬ ‫شماره‬‫توضیحات‬
1‫و‬ ‫فنی‬ ‫توسعه‬ ‫و‬ ‫تحقیق‬
‫مهندسی‬
۱۳۰۱-/۶/۱۲
‫مندرجات‬ ‫فهرست‬
‫چکیده‬.......................................................................................................................................................................................................۳
‫ها‬ ‫واژه‬ ‫کلید‬..............................................................................................................................................................................................۳
۱‫مقدمه‬.....................................................................................................................................................................................................۳
۲‫گذشته‬ ‫تحقیقات‬ ‫و‬ ‫مطالعات‬ ‫بررسی‬....................................................................................................................................................۶
۳‫کار‬ ‫انجام‬ ‫روش‬......................................................................................................................................................................................۶
۴‫نتایج‬.......................................................................................................................................................................................................۷
۵‫کار‬ ‫ادامه‬ ‫جهت‬ ‫نیاز‬ ‫مورد‬ ‫زمانبندی‬.....................................................................................................................................................۷
۶‫منابع‬.......................................................................................................................................................................................................۷
‫تصاوير‬ ‫فهرست‬
‫تصویر‬۱‫تصویر‬ ‫ارجاع‬ ‫از‬ ‫ای‬‫نمونه‬ :.............................................................................................................................................................۴
‫تصویر‬۲‫دوم‬ ‫تصویر‬ ‫نمونه‬ :.........................................................................................................................................................................۵
‫جداول‬ ‫فهرست‬
‫جدول‬۱‫جدول‬ ‫نمونه‬ :..................................................................................................................................................................................۵
‫جدول‬۲‫دوم‬ ‫جدول‬ ‫نمونه‬ :..........................................................................................................................................................................۵
۲
‫چکیده‬
‫?ل‬?‫فایی‬ ‫?اد‬?‫ایچی‬ ‫?وه‬?‫نحی‬ ‫?یرح‬?‫ش‬ ‫?ه‬?‫ب‬ ‫?تند‬?‫مس‬ ‫?ن‬?‫ای‬ ‫در‬configure‫و‬Makefile‫?الب‬?‫ق‬ ‫و‬‫?ای‬?‫ه‬ ‫?ل‬?‫فای‬
configure.ac‫و‬Makefile.am.‫پردازیم‬ ‫می‬
‫ها‬ ‫واژه‬ ‫کلید‬
Automake, autoconf, configure, Makefile
۱‫مقدمه‬
Autoconf‫تولید‬ ‫برای‬ ‫ابزاریست‬script‫6ور‬6‫بط‬ ‫را‬ ‫6زار‬6‫اف‬ ‫نرم‬ ‫کد‬ ‫های‬ ‫بسته‬ ‫که‬ ‫پوسته‬ ‫های‬‫6ه‬6‫ب‬ ‫6ار‬6‫خودک‬
‫مشابه‬ ‫های‬ ‫سامانه‬ ‫از‬ ‫کثیری‬ ‫انواع‬ ‫با‬ ‫انطباق‬ ‫منظور‬unix‫نماید‬ ‫می‬ ‫پیکربندی‬
Script‫توسط‬ ‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬Autoconf‫از‬ ‫6تقل‬6‫مس‬ ‫6را‬6‫اچ‬ ‫6ام‬6‫هنگ‬ ‫در‬Autoconf‫6ابراین‬6‫بن‬ ‫6وده‬6‫ب‬
‫داشتن‬ ‫به‬ ‫نیازی‬ ‫کاربران‬Autoconf.‫ندارند‬
Script‫به‬ ‫نیازی‬ ‫معمول‬ ‫بطور‬ ‫همچنین‬ ‫و‬ ‫ندارند‬ ‫کاربر‬ ‫با‬ ‫تعامل‬ ‫به‬ ‫نیازی‬ ‫اجرا‬ ‫هنگام‬ ‫در‬ ‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬
‫6از‬6‫نی‬ ‫6ورد‬6‫م‬ ‫6هیلت‬6‫تس‬ ‫از‬ ‫6ک‬6‫هری‬ ‫وجود‬ ‫بررسی‬ ‫به‬ ‫ها‬ ‫آن‬ .‫ندارند‬ ‫را‬ ‫ها‬ ‫آرگومان‬ ‫طریق‬ ‫از‬ ‫سامانه‬ ‫نوع‬ ‫کردن‬ ‫مشخص‬
.‫پردازند‬ ‫می‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬
Script‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬configure‫اجرا‬ ‫هنگام‬ ‫در‬ .‫شوند‬ ‫می‬ ‫نامیده‬configure‫6ی‬6‫م‬ ‫ایجاد‬ ‫فایل‬ ‫چندین‬
‫6ط‬6‫توس‬ ‫6ده‬6‫ش‬ ‫6اد‬6‫ایج‬ ‫6ای‬6‫ه‬ ‫6ل‬6‫فای‬ .‫6د‬6‫نمای‬ ‫می‬ ‫جایگزین‬ ‫منسبشان‬ ‫مقادیر‬ ‫با‬ ‫را‬ ‫پیکربندی‬ ‫پارامترهای‬ ‫و‬ ‫کند‬configure
:‫از‬ ‫عبارتند‬
‫فایل‬ ‫چند‬ ‫یا‬ ‫یک‬Makefile‫فایل‬ ‫یک‬ ‫زیرشاخه‬ ‫هر‬ ‫ازای‬ ‫به‬ ،
‫فایل‬ ‫یک‬C Header‫6ای‬6‫راهنماه‬ ‫6ده‬6‫بردارن‬ ‫در‬ ‫و‬ ‫6ت‬6‫اس‬ ‫6م‬6‫تنظی‬ ‫6ل‬6‫قاب‬ ‫آن‬ ‫6ام‬6‫ن‬ ‫6ه‬6‫ک‬ ‫اختیاری‬ ‫بطور‬define‫66ی‬6‫م‬ #
.‫باشد‬
‫یک‬script‫نام‬ ‫به‬ ‫پوسته‬config.status.‫کند‬ ‫می‬ ‫ایجاد‬ ‫دوباره‬ ‫را‬ ‫بال‬ ‫در‬ ‫شده‬ ‫لیست‬ ‫های‬ ‫فایل‬ ‫اجرا‬ ‫هنگام‬ ‫در‬ ‫که‬
۳
‫یک‬script‫نام‬ ‫به‬ ‫پوسته‬config.cache.‫کند‬ ‫می‬ ‫ذخیره‬ ‫را‬ ‫ها‬ ‫بررسی‬ ‫نتایج‬ ‫که‬
‫نام‬ ‫به‬ ‫فایل‬ ‫یک‬config.log.‫هاست‬ ‫مترجم‬ ‫توسط‬ ‫شده‬ ‫تولید‬ ‫های‬ ‫پیغام‬ ‫بردارنده‬ ‫در‬ ‫که‬
‫6اخت‬6‫س‬ ‫6ت‬6‫جه‬script‫6ط‬6‫توس‬ ‫6دی‬6‫پیکربن‬Autoconf‫6ام‬6‫ن‬ ‫6ه‬6‫ب‬ ‫ورودی‬ ‫6ل‬6‫فای‬ ‫6ه‬6‫ک‬ ‫6ت‬6‫اس‬ ‫لزم‬configure.in‫6ا‬6‫ی‬
configure.ac‫و‬ ‫کرده‬ ‫ایجاد‬Autoconf‫6ا‬6‫ب‬ ‫آنچه‬ ‫تامین‬ ‫جهت‬ ‫است‬ ‫ممکن‬ .‫نمایید‬ ‫اجرا‬ ‫آن‬ ‫روی‬ ‫بر‬ ‫را‬Autoconf‫6ی‬6‫م‬
‫6ای‬6‫ه‬ ‫فایل‬ ‫است‬ ‫ممکن‬ ‫همچنین‬ ،‫بنویسید‬ ‫تسهیلتی‬ ‫های‬ ‫بررسی‬ ‫آید‬aclocal.m4‫و‬acsite.m4‫از‬ ‫6ر‬6‫اگ‬ .‫6ید‬6‫بنویس‬ ‫را‬
‫فایل‬C Header‫6ت‬6‫اس‬ ‫ممکن‬ ‫کنید‬ ‫می‬ ‫استفاده‬acconfig.h‫6ل‬6‫فای‬ ‫و‬ ‫6ید‬6‫بنویس‬ ‫را‬config.h.in‫6ط‬6‫توس‬ ‫6ده‬6‫ش‬ ‫6د‬6‫تولی‬
Autoconf.‫نمایید‬ ‫توزیع‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫همراه‬ ‫به‬ ‫را‬
۲‫فایل‬ ‫نوستن‬configure.in
‫تولید‬ ‫جهت‬configure script‫نام‬ ‫به‬ ‫فایلی‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫برای‬configure.in‫6ای‬6‫ماکروه‬ ‫6ده‬6‫بردارن‬ ‫در‬ ‫6ه‬6‫ک‬
Autoconf‫6ی‬6‫م‬ ‫6ا‬6‫ی‬ ‫افزاریست‬ ‫نرم‬ ‫بسته‬ ‫نیاز‬ ‫مورد‬ ‫که‬ ‫سامانه‬ ‫تسهیلت‬ ‫بررسی‬ ‫ماکروها‬ ‫این‬ .‫نمایید‬ ‫ایجاد‬ ‫را‬ ‫باشد‬ ‫می‬
.‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬ ‫کند‬ ‫استفاده‬ ‫ها‬ ‫آن‬ ‫از‬ ‫تواند‬
‫در‬ ‫ماکروها‬ ‫فراخوانی‬ ‫ترتیب‬configure.in‫تمامی‬ .‫استثنا‬ ‫چند‬ ‫با‬ ‫مگر‬ ‫ندارند‬ ‫اهمیتی‬configure.in‫ش66امل‬ ‫باید‬ ‫ها‬
‫ماکرو‬ ‫فراخوانی‬AC_INIT‫6اکرو‬6‫م‬ ‫6وانی‬6‫فراخ‬ ‫6ن‬6‫همچنی‬ ‫و‬ ‫6ند‬6‫باش‬ ‫ها‬ ‫بررسی‬ ‫از‬ ‫قبل‬AC_OUTPUT‫بعلوه‬ .‫6ا‬6‫انته‬ ‫در‬
‫6ایی‬6‫متغیره‬ ‫از‬ ‫6ی‬6‫برخ‬ ‫مقادیر‬ ‫ها‬ ‫آن‬ ‫زیرا‬ ‫ضوند‬ ‫فراخوانی‬ ‫ها‬ ‫آن‬ ‫از‬ ‫پیش‬ ‫ماکروها‬ ‫دیگر‬ ‫تا‬ ‫دارند‬ ‫لزم‬ ‫ماکروها‬ ‫از‬ ‫بعضی‬
.‫کنند‬ ‫می‬ ‫بررسی‬ ‫گیری‬ ‫تصمسم‬ ‫جهت‬ ‫را‬ ‫اند‬ ‫شده‬ ‫تنظیم‬ ‫قبل‬ ‫از‬ ‫که‬
:‫است‬ ‫آمده‬ ‫ماکروها‬ ‫فراخوانی‬ ‫برای‬ ‫پیشنهادی‬ ‫ترتیب‬ ‫ادامه‬ ‫در‬
AC_INIT(file)
checks for programs
checks for libraries
checks for header files
checks for typedefs
۴
checks for structures
checks for compiler characteristics
checks for library functions
checks for system services
AC_OUTPUT([file...])
۳‫از‬ ‫استفاده‬autoscan‫ایجاد‬ ‫جهت‬configur.scan
‫برنامه‬autoscan‫فایل‬ ‫ایجاد‬ ‫در‬ ‫شما‬ ‫تواند‬ ‫می‬configure.in.‫نماید‬ ‫یاری‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫برای‬Autoscan‫فایل‬
‫6یر‬6‫مس‬ ‫6رض‬6‫ف‬ ‫پیش‬ ‫بطور‬ ‫ویا‬ ‫است‬ ‫شده‬ ‫داده‬ ‫آن‬ ‫به‬ ‫آرگومان‬ ‫عنوان‬ ‫به‬ ‫یا‬ ‫ریشه‬ ‫که‬ ‫ها‬ ‫شاخه‬ ‫درختی‬ ‫ساختار‬ ‫کد‬ ‫های‬
‫فای6ل‬ ‫و‬ ‫6د‬6‫کن‬ ‫6ی‬6‫م‬ ‫6تجو‬6‫جس‬ ‫پ6ذیری‬ ‫6ال‬6‫انتق‬ ‫مس6ایل‬ ‫را‬ ‫ک6د‬ ‫6ای‬6‫ه‬ ‫فای6ل‬ ‫6امه‬6‫برن‬ ‫ای6ن‬ .‫کن6د‬ ‫6ی‬6‫م‬ ‫امتحان‬ ‫را‬ ‫جاریست‬
configure.scan‫فایل‬ ‫اولیه‬ ‫شالوده‬ ‫که‬configure.in.‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫است‬ ‫بسته‬ ‫برای‬
‫فایل‬ ‫نام‬ ‫تغییر‬ ‫از‬ ‫قبل‬configure.scan‫به‬configure.in‫به‬ ‫نیاز‬ ‫دارد‬ ‫احتمال‬ ‫زیرا‬ ‫کنید‬ ‫امتحان‬ ‫را‬ ‫آن‬ ‫دستی‬ ‫بطور‬
‫معمول‬ .‫باشد‬ ‫داشته‬ ‫تنظیمات‬ ‫برخی‬autoscan‫می‬ ‫ایجاد‬ ‫غلط‬ ‫ترتیب‬ ‫با‬ ‫را‬ ‫است‬ ‫دیگر‬ ‫ماکروی‬ ‫با‬ ‫مرتبط‬ ‫که‬ ‫ماکرویی‬
‫شود‬ ‫می‬ ‫باعث‬ ‫که‬ ‫کند‬autoconf‫پیکربندی‬ ‫سرآنید‬ ‫فایل‬ ‫ار‬ ‫بسته‬ ‫که‬ ‫بخواهید‬ ‫شما‬ ‫اگر‬ ‫همچنین‬ .‫دهد‬ ‫عشدار‬ ‫شما‬ ‫به‬
‫فراخوانی‬ ‫باید‬ ‫شما‬ ،‫کند‬ ‫استفاده‬AC_CONFIG_HEADER.‫کنید‬ ‫اضافه‬ ‫آن‬ ‫به‬ ‫را‬
۴‫از‬ ‫استفاده‬autoconf‫ایجاد‬ ‫جهت‬configure
‫ایجاد‬ ‫جهت‬configure‫از‬configure.in‫برنامه‬autoconf.‫6د‬6‫نمایی‬ ‫اجرا‬ ‫آرگومانی‬ ‫هیچ‬ ‫بدون‬ ‫را‬Autoconf‫6ل‬6‫فای‬
configure.in‫ماکروهای‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬m4‫6ه‬6‫ب‬ ‫آرگومانی‬ ‫اگر‬ .‫کند‬ ‫می‬ ‫پردازش‬autoconf‫6دن‬6‫خوان‬ ‫6ای‬6‫بج‬ ‫6د‬6‫بدهی‬
‫فایل‬configure.in‫و‬ ‫خواند‬ ‫می‬ ‫را‬ ‫آرگومان‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫داده‬ ‫فایل‬script‫6ل‬6‫فای‬ ‫در‬ ‫6تن‬6‫نوش‬ ‫6ای‬6‫بج‬ ‫را‬ ‫6دی‬6‫پیکربن‬
configure.‫دهد‬ ‫می‬ ‫نمایش‬ ‫استاندارد‬ ‫خروجی‬ ‫در‬
۵‫واقعی‬ ‫پروژه‬ ‫یک‬
۵
‫شاخه‬ ‫وارد‬pvm:‫نمایید‬ ‫ایجاد‬ ‫را‬ ‫ذیل‬ ‫های‬ ‫فایل‬ ‫و‬ ‫شده‬
AUTHORS, COPYING, ChangeLog, Makefile.am, NEWS, README, autogen.sh, configure.ac‫و‬
‫زیرشاخه‬m4
‫برنامه‬autoscan‫فایل‬ ‫برنامه‬ ‫اجرای‬ ‫پایان‬ ‫از‬ ‫پس‬ .‫نمایید‬ ‫اجرا‬ ‫را‬configure.scan‫6ه‬6‫ب‬ ‫را‬ ‫آن‬ ،‫اس66ت‬ ‫ش66ده‬ ‫ایجاد‬
configure.ac.‫نمایید‬ ‫باز‬ ‫ویرایش‬ ‫جهت‬ ‫را‬ ‫آن‬ ‫سپس‬ ‫و‬ ‫داده‬ ‫نام‬ ‫تغییر‬
AC_PREREQ([2.63])
AC_INIT(pvm, 0.1.0, pvm@pdnsoft.com)
AC_CONFIG_SRCDIR(sball/sballd.cpp)
AC_CONFIG_HEADERS([config.h])
.‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬ ‫ان‬ ‫را‬ ‫سازی‬ ‫آماده‬ ‫و‬ ‫اولیه‬ ‫کارهای‬ ‫و‬ ‫هستند‬ ‫ثابتی‬ ‫کدهای‬ ‫بیش‬ ‫و‬ ‫کم‬ ‫فوق‬ ‫خطوط‬
AM_INIT_AUTOMAKE
‫بال‬ ‫خط‬automake.‫سازد‬ ‫می‬ ‫آماده‬ ‫استفاده‬ ‫جهت‬
AC_PROG_CXX
‫مترجم‬ ‫پشتیبانی‬ ‫خط‬ ‫این‬C.‫سازد‬ ‫می‬ ‫فعال‬ ‫را‬ ++
LT_INIT([disable-static])
.‫سازد‬ ‫می‬ ‫غیرفعال‬ ‫را‬ ‫ایستا‬ ‫های‬ ‫کتابخانه‬ ‫ایجاد‬ ‫خط‬ ‫این‬
AC_PROG_LIBTOOL
‫پشتیبانی‬libtool.‫سازد‬ ‫می‬ ‫فقال‬ ‫پویا‬ ‫های‬ ‫کتابخانه‬ ‫ایجاد‬ ‫جهت‬
PKG_CHECK_MODULES([UUID], [uuid])
‫بسته‬ ‫وجود‬uuid‫6ی‬6‫محیط‬ ‫متغیرهای‬ ‫وجودد‬ ‫ضورت‬ ‫در‬ ‫و‬ ‫کرده‬ ‫بررسی‬ ‫را‬UUID_CFLAGS‫و‬UUID_LIBS‫را‬
.‫کند‬ ‫می‬ ‫تعریف‬
AC_CHECK_LIB([cpg], [cpg_model_initialize])
۶
‫کتابخانه‬ ‫وجود‬libcpg.so.‫کند‬ ‫می‬ ‫بررسی‬ ‫را‬
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/file.h sys/socket.h ...
.‫کند‬ ‫می‬ ‫بررسی‬ ‫را‬ ‫سرآیند‬ ‫های‬ ‫فایل‬ ‫وجود‬
AC_SUBST([LIBPUTIL_SO_VERSION], [1:0:0])
‫محیطی‬ ‫متغیر‬LIBPUTIL_SO_VERSION.‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬
AC_OUTPUT(Makefile putil/Makefile sball/Makefile)
‫های‬ ‫فایل‬ ‫فوق‬ ‫عملیات‬ ‫موفقیت‬ ‫صورت‬ ‫در‬Makefile.‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬
‫نام‬ ‫ته‬ ‫فایلی‬autogen.sh‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫نمایید‬ ‫ایجاد‬
#!/bin/sh
autoreconf --force --install
rm -rf autom4te*.cache
‫برنامه‬autoreconf‫فایل‬ ‫شود‬ ‫می‬ ‫باعث‬configure‫شاخه‬ ‫درون‬ ‫به‬ ‫نیاز‬ ‫مورد‬ ‫های‬ ‫فایل‬ ‫و‬ ‫گردد‬ ‫ایجاد‬ ‫دوباره‬
.‫گردد‬ ‫اتقال‬ ‫ه‬‫پرو‬
‫نام‬ ‫به‬ ‫فایلی‬ ‫پروژه‬ ‫اصلی‬ ‫شاخه‬ ‫در‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫نمایید‬ ‫ایجاد‬
ACLOCAL_AMFLAGS = -I m4
‫به‬autoconf‫شاخه‬ ‫گوید‬ ‫می‬m4.‫کند‬ ‫جستجو‬ ‫اضافی‬ ‫ماکروهای‬ ‫یافتن‬ ‫جهت‬ ‫را‬
SUBDIRS = . putil sball
‫فایل‬ ‫دربردارنده‬ ‫که‬ ‫هایی‬ ‫زیرشاخه‬ ‫نام‬Makefile.am.‫گردد‬ ‫می‬ ‫ذکر‬ ‫هستند‬
EXTRA_DIST = autogen.sh
‫به‬automake‫فایل‬ ‫گوید‬ ‫می‬autogen.sh.‫دهد‬ ‫قرار‬ ‫توزیع‬ ‫آرشیو‬ ‫در‬ ‫را‬
۷
‫شاخه‬ ‫در‬putil‫فایل‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫کرده‬ ‫ایجاد‬ ‫را‬
AM_CPPFLAGS= -I../include -I../include/putil $(LIBXMLXX_CFLAGS)
.‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫پردازنده‬ ‫پیش‬ ‫و‬ ‫مترجم‬ ‫برای‬ ‫دیگر‬ ‫متفرقه‬ ‫تنظیمات‬ ‫و‬ ‫سرآیند‬ ‫های‬ ‫فایل‬ ‫جستجو‬ ‫شاخه‬
lib_LTLIBRARIES= libputil.la
.‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫خروجی‬ ‫های‬ ‫کتابخانه‬ ‫یا‬ ‫کتابخانه‬ ‫نام‬
libputil_la_SOURCES= daemon.cpp sysmonitor.cpp exception.cpp logs.cpp 
‫کتابخانه‬ ‫کد‬ ‫های‬ ‫فایل‬libputil.‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬
libputil_la_LDFLAGS= -version-info $(LIBPUTIL_SO_VERSION)
.‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫دهنده‬ ‫پیوند‬ ‫تنظیمات‬
‫شاخه‬ ‫در‬sball‫فایل‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫کرده‬ ‫ایجاد‬ ‫را‬
AM_CPPFLAGS= -I../include -I../include/putil -I../include/sball 
$(LIBXMLXX_CFLAGS)
lib_LTLIBRARIES= libpnm.la libpmm.la
libpnm_la_SOURCES= cpg.cpp nm.cpp
libpnm_la_LDFLAGS= -version-info $(LIBPNM_SO_VERSION) 
-Wl,--rpath -Wl,../putil/.libs
libpnm_la_LIBADD= -L../putil/.libs -lputil
libpmm_la_SOURCES= mm.cpp
libpmm_la_LDFLAGS= -version-info $(LIBPMM_SO_VERSION) 
۸
-Wl,--rpath -Wl,../putil/.lib 
-Wl,--rpath -Wl,../putil/.libss
libpmm_la_LIBADD= -L../putil/.libs -lputil
‫فایل‬ ‫همانند‬Makefile.am‫شاخه‬ ‫در‬putil‫های‬ ‫نام‬ ‫به‬ ‫کتابخانه‬ ‫دو‬ ‫اینجا‬ ‫در‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫باشد‬ ‫می‬libpmm‫و‬
libpnm.‫گردند‬ ‫می‬ ‫ایجاد‬
bin_PROGRAMS= sballd
‫خروجی‬ ‫اجرایی‬ ‫فایل‬ ‫نام‬
sballd_SOURCES= ../glbparams.cpp sballd.cpp
‫برنامه‬ ‫کد‬ ‫های‬ ‫فایل‬
sballd_LDFALGS= -Wl,--rpath -Wl,../putil/.libs -Wl,--rpath -Wl,.
‫دهنده‬ ‫پیوند‬ ‫تنظیمات‬
sballd_LDADD= -L../putil/.libs -lputil -L.libs -lpnm -lpmm $(LIBXMLXX_LIBS)
‫ها‬ ‫کتابخانه‬ ‫جستجو‬ ‫شاخه‬
‫اصلی‬ ‫شاخه‬ ‫در‬ ‫را‬ ‫زیر‬ ‫دستورات‬ ،‫است‬ ‫آماده‬ ‫چیز‬ ‫همه‬ ‫اکنون‬pvm:‫نمایید‬ ‫اجرا‬
./autogen.sh
./configure
make
۲‫منابع‬
1. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_1.html]
2. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_2.html]
۹
3. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_3.html]
4. [http://realmike.org/blog/2010/07/18/gnu-automake-by-example/]
5. [http://inti.sourceforge.net/tutorial/libinti/autotoolsproject.html]
6. [http://www.openismus.com/documents/linux/building_libraries/building_libraries]
7. [http://www.openismus.com/documents/linux/using_libraries/using_libraries]
۱۰

More Related Content

Viewers also liked

Netex | Learning Stories [ES]
Netex | Learning Stories [ES]Netex | Learning Stories [ES]
Netex | Learning Stories [ES]Netex Learning
 
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...Netex Learning
 
El paciente empoderado. Influencia en la reputación
El paciente empoderado. Influencia en la reputaciónEl paciente empoderado. Influencia en la reputación
El paciente empoderado. Influencia en la reputaciónCOM SALUD
 
Course syllabus college algebra
Course syllabus college algebraCourse syllabus college algebra
Course syllabus college algebraLeo Hubilla
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexadosjennifergu17
 
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]Netex Learning
 
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]Netex Learning
 
Celebrate diwali with indian craftsmanship | Trendybharat
Celebrate diwali with indian craftsmanship | TrendybharatCelebrate diwali with indian craftsmanship | Trendybharat
Celebrate diwali with indian craftsmanship | TrendybharatTrendy Bharat
 

Viewers also liked (8)

Netex | Learning Stories [ES]
Netex | Learning Stories [ES]Netex | Learning Stories [ES]
Netex | Learning Stories [ES]
 
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...
i-lovelearning 2016 | Del curso tradicional a la solución learningCoffee mult...
 
El paciente empoderado. Influencia en la reputación
El paciente empoderado. Influencia en la reputaciónEl paciente empoderado. Influencia en la reputación
El paciente empoderado. Influencia en la reputación
 
Course syllabus college algebra
Course syllabus college algebraCourse syllabus college algebra
Course syllabus college algebra
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexados
 
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]
Netex Webinar | Involucra a tus usuarios con Historias y Desafíos [ES]
 
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]
i-lovelearning London 2016 | The Role of L&D in the Modern Organisation [EN]
 
Celebrate diwali with indian craftsmanship | Trendybharat
Celebrate diwali with indian craftsmanship | TrendybharatCelebrate diwali with indian craftsmanship | Trendybharat
Celebrate diwali with indian craftsmanship | Trendybharat
 

Similar to Configure hh-fa-ver0.1.0

سیستم تئوری
سیستم تئوریسیستم تئوری
سیستم تئوریkimia2015
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptxaminnezarat
 
هسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آنهسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آنtuxitop
 
Pdn tech-v mware-convert-pvmos
Pdn tech-v mware-convert-pvmosPdn tech-v mware-convert-pvmos
Pdn tech-v mware-convert-pvmospdnsoftco
 
Elastix installation guide 1
Elastix installation guide 1Elastix installation guide 1
Elastix installation guide 1Hassan Saleh
 
Pdn tech-i lo-configuration-ver1.0.1
Pdn tech-i lo-configuration-ver1.0.1Pdn tech-i lo-configuration-ver1.0.1
Pdn tech-i lo-configuration-ver1.0.1pdnsoftco
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approachSadegh Saberi
 
Usefull Linux command
Usefull Linux commandUsefull Linux command
Usefull Linux commandHosein Zare
 
برنامه نویسی ماژول دروپال در 5 مرحله
برنامه نویسی ماژول دروپال در 5 مرحلهبرنامه نویسی ماژول دروپال در 5 مرحله
برنامه نویسی ماژول دروپال در 5 مرحلهdrupalika .org
 
Partition in oracle mysql |Mariadb
Partition in oracle mysql |MariadbPartition in oracle mysql |Mariadb
Partition in oracle mysql |MariadbYashar Esmaildokht
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Ehsan Hamzei
 

Similar to Configure hh-fa-ver0.1.0 (20)

Git2
Git2Git2
Git2
 
squid
squidsquid
squid
 
سیستم تئوری
سیستم تئوریسیستم تئوری
سیستم تئوری
 
تی شارک
تی شارکتی شارک
تی شارک
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptx
 
هسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آنهسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آن
 
Pdn tech-v mware-convert-pvmos
Pdn tech-v mware-convert-pvmosPdn tech-v mware-convert-pvmos
Pdn tech-v mware-convert-pvmos
 
Kotlin
KotlinKotlin
Kotlin
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
 
raid with megacli
raid with megacliraid with megacli
raid with megacli
 
Elastix installation guide 1
Elastix installation guide 1Elastix installation guide 1
Elastix installation guide 1
 
Pdn tech-i lo-configuration-ver1.0.1
Pdn tech-i lo-configuration-ver1.0.1Pdn tech-i lo-configuration-ver1.0.1
Pdn tech-i lo-configuration-ver1.0.1
 
Docker
DockerDocker
Docker
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
Usefull Linux command
Usefull Linux commandUsefull Linux command
Usefull Linux command
 
Brochure.giv
Brochure.givBrochure.giv
Brochure.giv
 
برنامه نویسی ماژول دروپال در 5 مرحله
برنامه نویسی ماژول دروپال در 5 مرحلهبرنامه نویسی ماژول دروپال در 5 مرحله
برنامه نویسی ماژول دروپال در 5 مرحله
 
Process
ProcessProcess
Process
 
Partition in oracle mysql |Mariadb
Partition in oracle mysql |MariadbPartition in oracle mysql |Mariadb
Partition in oracle mysql |Mariadb
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
 

More from pdnsoftco

Pdn tech-target market
Pdn tech-target marketPdn tech-target market
Pdn tech-target marketpdnsoftco
 
Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1pdnsoftco
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0pdnsoftco
 
Pdn tech-financial market
Pdn tech-financial marketPdn tech-financial market
Pdn tech-financial marketpdnsoftco
 
Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1pdnsoftco
 
Pdn multipath io-pvm-ver1.0.0
Pdn multipath io-pvm-ver1.0.0Pdn multipath io-pvm-ver1.0.0
Pdn multipath io-pvm-ver1.0.0pdnsoftco
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0pdnsoftco
 
Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1pdnsoftco
 

More from pdnsoftco (8)

Pdn tech-target market
Pdn tech-target marketPdn tech-target market
Pdn tech-target market
 
Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 
Pdn tech-financial market
Pdn tech-financial marketPdn tech-financial market
Pdn tech-financial market
 
Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1
 
Pdn multipath io-pvm-ver1.0.0
Pdn multipath io-pvm-ver1.0.0Pdn multipath io-pvm-ver1.0.0
Pdn multipath io-pvm-ver1.0.0
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 
Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1Vm ware ha-ver-0.0.1
Vm ware ha-ver-0.0.1
 

Configure hh-fa-ver0.1.0

  • 1. ‫خدا‬ ‫نام‬ ‫به‬ Configure :‫محدوده‬ ‫فایل‬ ‫ایچاد‬ ‫نحوه‬configure‫و‬.Makefile am‫پروژه‬ ‫در‬PVM ‫تاريخچه‬: ‫ردیف‬‫نویسنده‬‫تاریخ‬‫ویرایش‬ ‫شماره‬‫توضیحات‬ 1‫و‬ ‫فنی‬ ‫توسعه‬ ‫و‬ ‫تحقیق‬ ‫مهندسی‬ ۱۳۰۱-/۶/۱۲
  • 2. ‫مندرجات‬ ‫فهرست‬ ‫چکیده‬.......................................................................................................................................................................................................۳ ‫ها‬ ‫واژه‬ ‫کلید‬..............................................................................................................................................................................................۳ ۱‫مقدمه‬.....................................................................................................................................................................................................۳ ۲‫گذشته‬ ‫تحقیقات‬ ‫و‬ ‫مطالعات‬ ‫بررسی‬....................................................................................................................................................۶ ۳‫کار‬ ‫انجام‬ ‫روش‬......................................................................................................................................................................................۶ ۴‫نتایج‬.......................................................................................................................................................................................................۷ ۵‫کار‬ ‫ادامه‬ ‫جهت‬ ‫نیاز‬ ‫مورد‬ ‫زمانبندی‬.....................................................................................................................................................۷ ۶‫منابع‬.......................................................................................................................................................................................................۷ ‫تصاوير‬ ‫فهرست‬ ‫تصویر‬۱‫تصویر‬ ‫ارجاع‬ ‫از‬ ‫ای‬‫نمونه‬ :.............................................................................................................................................................۴ ‫تصویر‬۲‫دوم‬ ‫تصویر‬ ‫نمونه‬ :.........................................................................................................................................................................۵ ‫جداول‬ ‫فهرست‬ ‫جدول‬۱‫جدول‬ ‫نمونه‬ :..................................................................................................................................................................................۵ ‫جدول‬۲‫دوم‬ ‫جدول‬ ‫نمونه‬ :..........................................................................................................................................................................۵ ۲
  • 3. ‫چکیده‬ ‫?ل‬?‫فایی‬ ‫?اد‬?‫ایچی‬ ‫?وه‬?‫نحی‬ ‫?یرح‬?‫ش‬ ‫?ه‬?‫ب‬ ‫?تند‬?‫مس‬ ‫?ن‬?‫ای‬ ‫در‬configure‫و‬Makefile‫?الب‬?‫ق‬ ‫و‬‫?ای‬?‫ه‬ ‫?ل‬?‫فای‬ configure.ac‫و‬Makefile.am.‫پردازیم‬ ‫می‬ ‫ها‬ ‫واژه‬ ‫کلید‬ Automake, autoconf, configure, Makefile ۱‫مقدمه‬ Autoconf‫تولید‬ ‫برای‬ ‫ابزاریست‬script‫6ور‬6‫بط‬ ‫را‬ ‫6زار‬6‫اف‬ ‫نرم‬ ‫کد‬ ‫های‬ ‫بسته‬ ‫که‬ ‫پوسته‬ ‫های‬‫6ه‬6‫ب‬ ‫6ار‬6‫خودک‬ ‫مشابه‬ ‫های‬ ‫سامانه‬ ‫از‬ ‫کثیری‬ ‫انواع‬ ‫با‬ ‫انطباق‬ ‫منظور‬unix‫نماید‬ ‫می‬ ‫پیکربندی‬ Script‫توسط‬ ‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬Autoconf‫از‬ ‫6تقل‬6‫مس‬ ‫6را‬6‫اچ‬ ‫6ام‬6‫هنگ‬ ‫در‬Autoconf‫6ابراین‬6‫بن‬ ‫6وده‬6‫ب‬ ‫داشتن‬ ‫به‬ ‫نیازی‬ ‫کاربران‬Autoconf.‫ندارند‬ Script‫به‬ ‫نیازی‬ ‫معمول‬ ‫بطور‬ ‫همچنین‬ ‫و‬ ‫ندارند‬ ‫کاربر‬ ‫با‬ ‫تعامل‬ ‫به‬ ‫نیازی‬ ‫اجرا‬ ‫هنگام‬ ‫در‬ ‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬ ‫6از‬6‫نی‬ ‫6ورد‬6‫م‬ ‫6هیلت‬6‫تس‬ ‫از‬ ‫6ک‬6‫هری‬ ‫وجود‬ ‫بررسی‬ ‫به‬ ‫ها‬ ‫آن‬ .‫ندارند‬ ‫را‬ ‫ها‬ ‫آرگومان‬ ‫طریق‬ ‫از‬ ‫سامانه‬ ‫نوع‬ ‫کردن‬ ‫مشخص‬ .‫پردازند‬ ‫می‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ Script‫شده‬ ‫تولید‬ ‫پیکربندی‬ ‫های‬configure‫اجرا‬ ‫هنگام‬ ‫در‬ .‫شوند‬ ‫می‬ ‫نامیده‬configure‫6ی‬6‫م‬ ‫ایجاد‬ ‫فایل‬ ‫چندین‬ ‫6ط‬6‫توس‬ ‫6ده‬6‫ش‬ ‫6اد‬6‫ایج‬ ‫6ای‬6‫ه‬ ‫6ل‬6‫فای‬ .‫6د‬6‫نمای‬ ‫می‬ ‫جایگزین‬ ‫منسبشان‬ ‫مقادیر‬ ‫با‬ ‫را‬ ‫پیکربندی‬ ‫پارامترهای‬ ‫و‬ ‫کند‬configure :‫از‬ ‫عبارتند‬ ‫فایل‬ ‫چند‬ ‫یا‬ ‫یک‬Makefile‫فایل‬ ‫یک‬ ‫زیرشاخه‬ ‫هر‬ ‫ازای‬ ‫به‬ ، ‫فایل‬ ‫یک‬C Header‫6ای‬6‫راهنماه‬ ‫6ده‬6‫بردارن‬ ‫در‬ ‫و‬ ‫6ت‬6‫اس‬ ‫6م‬6‫تنظی‬ ‫6ل‬6‫قاب‬ ‫آن‬ ‫6ام‬6‫ن‬ ‫6ه‬6‫ک‬ ‫اختیاری‬ ‫بطور‬define‫66ی‬6‫م‬ # .‫باشد‬ ‫یک‬script‫نام‬ ‫به‬ ‫پوسته‬config.status.‫کند‬ ‫می‬ ‫ایجاد‬ ‫دوباره‬ ‫را‬ ‫بال‬ ‫در‬ ‫شده‬ ‫لیست‬ ‫های‬ ‫فایل‬ ‫اجرا‬ ‫هنگام‬ ‫در‬ ‫که‬ ۳
  • 4. ‫یک‬script‫نام‬ ‫به‬ ‫پوسته‬config.cache.‫کند‬ ‫می‬ ‫ذخیره‬ ‫را‬ ‫ها‬ ‫بررسی‬ ‫نتایج‬ ‫که‬ ‫نام‬ ‫به‬ ‫فایل‬ ‫یک‬config.log.‫هاست‬ ‫مترجم‬ ‫توسط‬ ‫شده‬ ‫تولید‬ ‫های‬ ‫پیغام‬ ‫بردارنده‬ ‫در‬ ‫که‬ ‫6اخت‬6‫س‬ ‫6ت‬6‫جه‬script‫6ط‬6‫توس‬ ‫6دی‬6‫پیکربن‬Autoconf‫6ام‬6‫ن‬ ‫6ه‬6‫ب‬ ‫ورودی‬ ‫6ل‬6‫فای‬ ‫6ه‬6‫ک‬ ‫6ت‬6‫اس‬ ‫لزم‬configure.in‫6ا‬6‫ی‬ configure.ac‫و‬ ‫کرده‬ ‫ایجاد‬Autoconf‫6ا‬6‫ب‬ ‫آنچه‬ ‫تامین‬ ‫جهت‬ ‫است‬ ‫ممکن‬ .‫نمایید‬ ‫اجرا‬ ‫آن‬ ‫روی‬ ‫بر‬ ‫را‬Autoconf‫6ی‬6‫م‬ ‫6ای‬6‫ه‬ ‫فایل‬ ‫است‬ ‫ممکن‬ ‫همچنین‬ ،‫بنویسید‬ ‫تسهیلتی‬ ‫های‬ ‫بررسی‬ ‫آید‬aclocal.m4‫و‬acsite.m4‫از‬ ‫6ر‬6‫اگ‬ .‫6ید‬6‫بنویس‬ ‫را‬ ‫فایل‬C Header‫6ت‬6‫اس‬ ‫ممکن‬ ‫کنید‬ ‫می‬ ‫استفاده‬acconfig.h‫6ل‬6‫فای‬ ‫و‬ ‫6ید‬6‫بنویس‬ ‫را‬config.h.in‫6ط‬6‫توس‬ ‫6ده‬6‫ش‬ ‫6د‬6‫تولی‬ Autoconf.‫نمایید‬ ‫توزیع‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫همراه‬ ‫به‬ ‫را‬ ۲‫فایل‬ ‫نوستن‬configure.in ‫تولید‬ ‫جهت‬configure script‫نام‬ ‫به‬ ‫فایلی‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫برای‬configure.in‫6ای‬6‫ماکروه‬ ‫6ده‬6‫بردارن‬ ‫در‬ ‫6ه‬6‫ک‬ Autoconf‫6ی‬6‫م‬ ‫6ا‬6‫ی‬ ‫افزاریست‬ ‫نرم‬ ‫بسته‬ ‫نیاز‬ ‫مورد‬ ‫که‬ ‫سامانه‬ ‫تسهیلت‬ ‫بررسی‬ ‫ماکروها‬ ‫این‬ .‫نمایید‬ ‫ایجاد‬ ‫را‬ ‫باشد‬ ‫می‬ .‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬ ‫کند‬ ‫استفاده‬ ‫ها‬ ‫آن‬ ‫از‬ ‫تواند‬ ‫در‬ ‫ماکروها‬ ‫فراخوانی‬ ‫ترتیب‬configure.in‫تمامی‬ .‫استثنا‬ ‫چند‬ ‫با‬ ‫مگر‬ ‫ندارند‬ ‫اهمیتی‬configure.in‫ش66امل‬ ‫باید‬ ‫ها‬ ‫ماکرو‬ ‫فراخوانی‬AC_INIT‫6اکرو‬6‫م‬ ‫6وانی‬6‫فراخ‬ ‫6ن‬6‫همچنی‬ ‫و‬ ‫6ند‬6‫باش‬ ‫ها‬ ‫بررسی‬ ‫از‬ ‫قبل‬AC_OUTPUT‫بعلوه‬ .‫6ا‬6‫انته‬ ‫در‬ ‫6ایی‬6‫متغیره‬ ‫از‬ ‫6ی‬6‫برخ‬ ‫مقادیر‬ ‫ها‬ ‫آن‬ ‫زیرا‬ ‫ضوند‬ ‫فراخوانی‬ ‫ها‬ ‫آن‬ ‫از‬ ‫پیش‬ ‫ماکروها‬ ‫دیگر‬ ‫تا‬ ‫دارند‬ ‫لزم‬ ‫ماکروها‬ ‫از‬ ‫بعضی‬ .‫کنند‬ ‫می‬ ‫بررسی‬ ‫گیری‬ ‫تصمسم‬ ‫جهت‬ ‫را‬ ‫اند‬ ‫شده‬ ‫تنظیم‬ ‫قبل‬ ‫از‬ ‫که‬ :‫است‬ ‫آمده‬ ‫ماکروها‬ ‫فراخوانی‬ ‫برای‬ ‫پیشنهادی‬ ‫ترتیب‬ ‫ادامه‬ ‫در‬ AC_INIT(file) checks for programs checks for libraries checks for header files checks for typedefs ۴
  • 5. checks for structures checks for compiler characteristics checks for library functions checks for system services AC_OUTPUT([file...]) ۳‫از‬ ‫استفاده‬autoscan‫ایجاد‬ ‫جهت‬configur.scan ‫برنامه‬autoscan‫فایل‬ ‫ایجاد‬ ‫در‬ ‫شما‬ ‫تواند‬ ‫می‬configure.in.‫نماید‬ ‫یاری‬ ‫افزاری‬ ‫نرم‬ ‫بسته‬ ‫برای‬Autoscan‫فایل‬ ‫6یر‬6‫مس‬ ‫6رض‬6‫ف‬ ‫پیش‬ ‫بطور‬ ‫ویا‬ ‫است‬ ‫شده‬ ‫داده‬ ‫آن‬ ‫به‬ ‫آرگومان‬ ‫عنوان‬ ‫به‬ ‫یا‬ ‫ریشه‬ ‫که‬ ‫ها‬ ‫شاخه‬ ‫درختی‬ ‫ساختار‬ ‫کد‬ ‫های‬ ‫فای6ل‬ ‫و‬ ‫6د‬6‫کن‬ ‫6ی‬6‫م‬ ‫6تجو‬6‫جس‬ ‫پ6ذیری‬ ‫6ال‬6‫انتق‬ ‫مس6ایل‬ ‫را‬ ‫ک6د‬ ‫6ای‬6‫ه‬ ‫فای6ل‬ ‫6امه‬6‫برن‬ ‫ای6ن‬ .‫کن6د‬ ‫6ی‬6‫م‬ ‫امتحان‬ ‫را‬ ‫جاریست‬ configure.scan‫فایل‬ ‫اولیه‬ ‫شالوده‬ ‫که‬configure.in.‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫است‬ ‫بسته‬ ‫برای‬ ‫فایل‬ ‫نام‬ ‫تغییر‬ ‫از‬ ‫قبل‬configure.scan‫به‬configure.in‫به‬ ‫نیاز‬ ‫دارد‬ ‫احتمال‬ ‫زیرا‬ ‫کنید‬ ‫امتحان‬ ‫را‬ ‫آن‬ ‫دستی‬ ‫بطور‬ ‫معمول‬ .‫باشد‬ ‫داشته‬ ‫تنظیمات‬ ‫برخی‬autoscan‫می‬ ‫ایجاد‬ ‫غلط‬ ‫ترتیب‬ ‫با‬ ‫را‬ ‫است‬ ‫دیگر‬ ‫ماکروی‬ ‫با‬ ‫مرتبط‬ ‫که‬ ‫ماکرویی‬ ‫شود‬ ‫می‬ ‫باعث‬ ‫که‬ ‫کند‬autoconf‫پیکربندی‬ ‫سرآنید‬ ‫فایل‬ ‫ار‬ ‫بسته‬ ‫که‬ ‫بخواهید‬ ‫شما‬ ‫اگر‬ ‫همچنین‬ .‫دهد‬ ‫عشدار‬ ‫شما‬ ‫به‬ ‫فراخوانی‬ ‫باید‬ ‫شما‬ ،‫کند‬ ‫استفاده‬AC_CONFIG_HEADER.‫کنید‬ ‫اضافه‬ ‫آن‬ ‫به‬ ‫را‬ ۴‫از‬ ‫استفاده‬autoconf‫ایجاد‬ ‫جهت‬configure ‫ایجاد‬ ‫جهت‬configure‫از‬configure.in‫برنامه‬autoconf.‫6د‬6‫نمایی‬ ‫اجرا‬ ‫آرگومانی‬ ‫هیچ‬ ‫بدون‬ ‫را‬Autoconf‫6ل‬6‫فای‬ configure.in‫ماکروهای‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬m4‫6ه‬6‫ب‬ ‫آرگومانی‬ ‫اگر‬ .‫کند‬ ‫می‬ ‫پردازش‬autoconf‫6دن‬6‫خوان‬ ‫6ای‬6‫بج‬ ‫6د‬6‫بدهی‬ ‫فایل‬configure.in‫و‬ ‫خواند‬ ‫می‬ ‫را‬ ‫آرگومان‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫داده‬ ‫فایل‬script‫6ل‬6‫فای‬ ‫در‬ ‫6تن‬6‫نوش‬ ‫6ای‬6‫بج‬ ‫را‬ ‫6دی‬6‫پیکربن‬ configure.‫دهد‬ ‫می‬ ‫نمایش‬ ‫استاندارد‬ ‫خروجی‬ ‫در‬ ۵‫واقعی‬ ‫پروژه‬ ‫یک‬ ۵
  • 6. ‫شاخه‬ ‫وارد‬pvm:‫نمایید‬ ‫ایجاد‬ ‫را‬ ‫ذیل‬ ‫های‬ ‫فایل‬ ‫و‬ ‫شده‬ AUTHORS, COPYING, ChangeLog, Makefile.am, NEWS, README, autogen.sh, configure.ac‫و‬ ‫زیرشاخه‬m4 ‫برنامه‬autoscan‫فایل‬ ‫برنامه‬ ‫اجرای‬ ‫پایان‬ ‫از‬ ‫پس‬ .‫نمایید‬ ‫اجرا‬ ‫را‬configure.scan‫6ه‬6‫ب‬ ‫را‬ ‫آن‬ ،‫اس66ت‬ ‫ش66ده‬ ‫ایجاد‬ configure.ac.‫نمایید‬ ‫باز‬ ‫ویرایش‬ ‫جهت‬ ‫را‬ ‫آن‬ ‫سپس‬ ‫و‬ ‫داده‬ ‫نام‬ ‫تغییر‬ AC_PREREQ([2.63]) AC_INIT(pvm, 0.1.0, pvm@pdnsoft.com) AC_CONFIG_SRCDIR(sball/sballd.cpp) AC_CONFIG_HEADERS([config.h]) .‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬ ‫ان‬ ‫را‬ ‫سازی‬ ‫آماده‬ ‫و‬ ‫اولیه‬ ‫کارهای‬ ‫و‬ ‫هستند‬ ‫ثابتی‬ ‫کدهای‬ ‫بیش‬ ‫و‬ ‫کم‬ ‫فوق‬ ‫خطوط‬ AM_INIT_AUTOMAKE ‫بال‬ ‫خط‬automake.‫سازد‬ ‫می‬ ‫آماده‬ ‫استفاده‬ ‫جهت‬ AC_PROG_CXX ‫مترجم‬ ‫پشتیبانی‬ ‫خط‬ ‫این‬C.‫سازد‬ ‫می‬ ‫فعال‬ ‫را‬ ++ LT_INIT([disable-static]) .‫سازد‬ ‫می‬ ‫غیرفعال‬ ‫را‬ ‫ایستا‬ ‫های‬ ‫کتابخانه‬ ‫ایجاد‬ ‫خط‬ ‫این‬ AC_PROG_LIBTOOL ‫پشتیبانی‬libtool.‫سازد‬ ‫می‬ ‫فقال‬ ‫پویا‬ ‫های‬ ‫کتابخانه‬ ‫ایجاد‬ ‫جهت‬ PKG_CHECK_MODULES([UUID], [uuid]) ‫بسته‬ ‫وجود‬uuid‫6ی‬6‫محیط‬ ‫متغیرهای‬ ‫وجودد‬ ‫ضورت‬ ‫در‬ ‫و‬ ‫کرده‬ ‫بررسی‬ ‫را‬UUID_CFLAGS‫و‬UUID_LIBS‫را‬ .‫کند‬ ‫می‬ ‫تعریف‬ AC_CHECK_LIB([cpg], [cpg_model_initialize]) ۶
  • 7. ‫کتابخانه‬ ‫وجود‬libcpg.so.‫کند‬ ‫می‬ ‫بررسی‬ ‫را‬ AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/file.h sys/socket.h ... .‫کند‬ ‫می‬ ‫بررسی‬ ‫را‬ ‫سرآیند‬ ‫های‬ ‫فایل‬ ‫وجود‬ AC_SUBST([LIBPUTIL_SO_VERSION], [1:0:0]) ‫محیطی‬ ‫متغیر‬LIBPUTIL_SO_VERSION.‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬ AC_OUTPUT(Makefile putil/Makefile sball/Makefile) ‫های‬ ‫فایل‬ ‫فوق‬ ‫عملیات‬ ‫موفقیت‬ ‫صورت‬ ‫در‬Makefile.‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫نام‬ ‫ته‬ ‫فایلی‬autogen.sh‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫نمایید‬ ‫ایجاد‬ #!/bin/sh autoreconf --force --install rm -rf autom4te*.cache ‫برنامه‬autoreconf‫فایل‬ ‫شود‬ ‫می‬ ‫باعث‬configure‫شاخه‬ ‫درون‬ ‫به‬ ‫نیاز‬ ‫مورد‬ ‫های‬ ‫فایل‬ ‫و‬ ‫گردد‬ ‫ایجاد‬ ‫دوباره‬ .‫گردد‬ ‫اتقال‬ ‫ه‬‫پرو‬ ‫نام‬ ‫به‬ ‫فایلی‬ ‫پروژه‬ ‫اصلی‬ ‫شاخه‬ ‫در‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫نمایید‬ ‫ایجاد‬ ACLOCAL_AMFLAGS = -I m4 ‫به‬autoconf‫شاخه‬ ‫گوید‬ ‫می‬m4.‫کند‬ ‫جستجو‬ ‫اضافی‬ ‫ماکروهای‬ ‫یافتن‬ ‫جهت‬ ‫را‬ SUBDIRS = . putil sball ‫فایل‬ ‫دربردارنده‬ ‫که‬ ‫هایی‬ ‫زیرشاخه‬ ‫نام‬Makefile.am.‫گردد‬ ‫می‬ ‫ذکر‬ ‫هستند‬ EXTRA_DIST = autogen.sh ‫به‬automake‫فایل‬ ‫گوید‬ ‫می‬autogen.sh.‫دهد‬ ‫قرار‬ ‫توزیع‬ ‫آرشیو‬ ‫در‬ ‫را‬ ۷
  • 8. ‫شاخه‬ ‫در‬putil‫فایل‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫کرده‬ ‫ایجاد‬ ‫را‬ AM_CPPFLAGS= -I../include -I../include/putil $(LIBXMLXX_CFLAGS) .‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫پردازنده‬ ‫پیش‬ ‫و‬ ‫مترجم‬ ‫برای‬ ‫دیگر‬ ‫متفرقه‬ ‫تنظیمات‬ ‫و‬ ‫سرآیند‬ ‫های‬ ‫فایل‬ ‫جستجو‬ ‫شاخه‬ lib_LTLIBRARIES= libputil.la .‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫خروجی‬ ‫های‬ ‫کتابخانه‬ ‫یا‬ ‫کتابخانه‬ ‫نام‬ libputil_la_SOURCES= daemon.cpp sysmonitor.cpp exception.cpp logs.cpp ‫کتابخانه‬ ‫کد‬ ‫های‬ ‫فایل‬libputil.‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ libputil_la_LDFLAGS= -version-info $(LIBPUTIL_SO_VERSION) .‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫دهنده‬ ‫پیوند‬ ‫تنظیمات‬ ‫شاخه‬ ‫در‬sball‫فایل‬Makefile.am:‫نمایید‬ ‫اضافه‬ ‫بدان‬ ‫را‬ ‫زیر‬ ‫خطوط‬ ‫و‬ ‫کرده‬ ‫ایجاد‬ ‫را‬ AM_CPPFLAGS= -I../include -I../include/putil -I../include/sball $(LIBXMLXX_CFLAGS) lib_LTLIBRARIES= libpnm.la libpmm.la libpnm_la_SOURCES= cpg.cpp nm.cpp libpnm_la_LDFLAGS= -version-info $(LIBPNM_SO_VERSION) -Wl,--rpath -Wl,../putil/.libs libpnm_la_LIBADD= -L../putil/.libs -lputil libpmm_la_SOURCES= mm.cpp libpmm_la_LDFLAGS= -version-info $(LIBPMM_SO_VERSION) ۸
  • 9. -Wl,--rpath -Wl,../putil/.lib -Wl,--rpath -Wl,../putil/.libss libpmm_la_LIBADD= -L../putil/.libs -lputil ‫فایل‬ ‫همانند‬Makefile.am‫شاخه‬ ‫در‬putil‫های‬ ‫نام‬ ‫به‬ ‫کتابخانه‬ ‫دو‬ ‫اینجا‬ ‫در‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫باشد‬ ‫می‬libpmm‫و‬ libpnm.‫گردند‬ ‫می‬ ‫ایجاد‬ bin_PROGRAMS= sballd ‫خروجی‬ ‫اجرایی‬ ‫فایل‬ ‫نام‬ sballd_SOURCES= ../glbparams.cpp sballd.cpp ‫برنامه‬ ‫کد‬ ‫های‬ ‫فایل‬ sballd_LDFALGS= -Wl,--rpath -Wl,../putil/.libs -Wl,--rpath -Wl,. ‫دهنده‬ ‫پیوند‬ ‫تنظیمات‬ sballd_LDADD= -L../putil/.libs -lputil -L.libs -lpnm -lpmm $(LIBXMLXX_LIBS) ‫ها‬ ‫کتابخانه‬ ‫جستجو‬ ‫شاخه‬ ‫اصلی‬ ‫شاخه‬ ‫در‬ ‫را‬ ‫زیر‬ ‫دستورات‬ ،‫است‬ ‫آماده‬ ‫چیز‬ ‫همه‬ ‫اکنون‬pvm:‫نمایید‬ ‫اجرا‬ ./autogen.sh ./configure make ۲‫منابع‬ 1. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_1.html] 2. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_2.html] ۹
  • 10. 3. [http://www.nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_3.html] 4. [http://realmike.org/blog/2010/07/18/gnu-automake-by-example/] 5. [http://inti.sourceforge.net/tutorial/libinti/autotoolsproject.html] 6. [http://www.openismus.com/documents/linux/building_libraries/building_libraries] 7. [http://www.openismus.com/documents/linux/using_libraries/using_libraries] ۱۰