উত্তর:
Makefile.am
প্রোগ্রামার-সংজ্ঞায়িত ফাইল এবং দ্বারা ব্যবহৃত হয় automake
জেনারেট করতে Makefile.in
ফাইল ( .am
জন্য ব্রিদিং একটি uto মি Ake)। configure
স্ক্রিপ্ট সাধারণত উৎস tarballs দেখা ব্যবহার করবে Makefile.in
একটি জেনারেট করতে Makefile
।
configure
স্ক্রিপ্ট নিজেই একটি প্রোগ্রামার-সংজ্ঞায়িত পারেন নামে ফাইল থেকে উৎপন্ন হয় configure.ac
বা configure.in
(থামানো হয়েছে)। আমি পছন্দ করি .ac
( একটি ইউটো সি অন্ফের জন্য) যেহেতু এটি এটিকে উত্পন্ন Makefile.in
ফাইল থেকে পৃথক করে এবং সেভাবে আমার নিয়ম থাকতে পারে যেমন make dist-clean
কোনটি চালায় rm -f *.in
। যেহেতু এটি একটি উত্পন্ন ফাইল, তাই এটি সাধারণত গিট, এসভিএন, মার্কিউরিয়াল বা সিভিএসের মতো কোনও সংশোধন সিস্টেমে সংরক্ষণ করা হয় না, বরং .ac
ফাইলটি হবে।
জিএনইউ অটোটুলগুলিতে আরও পড়ুন । সম্পর্কে পড়ুন make
এবং Makefile
প্রথম, তারপর সম্পর্কে জানতে automake
, autoconf
, libtool
, ইত্যাদি
.in
এক্সটেনশন মানে যে জন্য এটা ইনপুট configure
ম্যাসেজ, যে ব্যবহার করা উচিত না একটি চূড়ান্ত ফাইল (যেমন সঙ্গে make
)। এটি কেন "হাস্যকরভাবে" জটিল বলে মনে হচ্ছে তা যদি আপনি জানতে আগ্রহী হন তবে পড়ার চেষ্টা করুন: স্ট্যাকওভারফ্লো.com/ a / 26832773 / 939557 আজকের দিনে গিটহাব ইত্যাদির সাথে একটি সাধারণ বিতরণ চ্যানেল হয়ে উঠছে অটোকনফের কিছু অনুমানগুলি ভেঙে যাচ্ছে: মানুষ প্রাপ্ত হচ্ছেন রক্ষণাবেক্ষণকারীদের দ্বারা তৈরি উত্স বিতরণ টারবাল ব্যবহার না করে সোর্স সোর্স কোড নিয়ন্ত্রণ সরঞ্জাম থেকে।
সহজ উদাহরণ
নির্লজ্জভাবে: http://www.gnu.org/software/automake/manual/html_node/Creating-amhello.html থেকে অভিযোজিত এবং উবুন্টু 14.04 অটোমেক 1.14.1 এ পরীক্ষিত।
Makefile.am
SUBDIRS = src
dist_doc_DATA = README.md
README.md
Some doc.
configure.ac
AC_INIT([automake_hello_world], [1.0], [bug-automake@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
])
AC_OUTPUT
src / Makefile.am
bin_PROGRAMS = autotools_hello_world
autotools_hello_world_SOURCES = main.c
src / main.c
#include <config.h>
#include <stdio.h>
int main (void) {
puts ("Hello world from " PACKAGE_STRING);
return 0;
}
ব্যবহার
autoreconf --install
mkdir build
cd build
../configure
make
sudo make install
autoconf_hello_world
sudo make uninstall
এই ফলাফলগুলি:
Hello world from automake_hello_world 1.0
মন্তব্য
autoreconf --install
বেশ কয়েকটি টেম্পলেট ফাইল উত্পন্ন করে যা গিট সহ ট্র্যাক করা উচিত Makefile.in
। এটি কেবল প্রথমবার চালানো দরকার।
make install
ইনস্টল করা হয়:
/usr/local/bin
README.md
প্রতি /usr/local/share/doc/automake_hello_world
আপনার এটি চেষ্টা করার জন্য গিটহাব এ On
autoconf
এবং automake
:1) autoconf - shippable সৃষ্টি কনফিগার স্ক্রিপ্ট
(যা ইনস্টলার পরে হবে চালানোর করতে Makefile নামক )
2) automake - shippable সৃষ্টি Makefile.in তথ্য ফাইল
(যা কনফিগার পরে হবে পড়া করতে Makefile নামক )
configure
, make
এবং sudo make install
:./configure # Creates Makefile (from Makefile.in).
make # Creates the application (from the Makefile just created).
sudo make install # Installs the application
# Often, by default its files are installed into /usr/local
নীচের স্বরলিপিটি মোটামুটি: ইনপুট -> প্রোগ্রাম -> আউটপুট
ডেভেলপার এগুলি চালায়:
configure.ac -> অটোকনফ -> কনফিগার (স্ক্রিপ্ট) --- (*। ac = a uto c onf)
configure.in -> অটোকনফ -> কনফিগার (স্ক্রিপ্ট) --- ( configure.in
অবহেলিত। কনফিগার.এ্যাক ব্যবহার করুন)
Makefile.am -> Automake -> Makefile.in ----------- (*। Am = a uto m ake)
ইনস্টলার এগুলি চালায়:
Makefile.in -> কনফিগার -> Makefile নামক (। * মধ্যে = মধ্যে করা ফাইল)
মেকফিল -> মেক ----------> (আপনার ডাউনলোড বা অস্থায়ী ডিরেক্টরিতে নতুন সফ্টওয়্যার রাখে)
মেকফিল -> ইনস্টল করুন -> (সিস্টেম ডিরেক্টরিতে নতুন সফ্টওয়্যার রাখে)
" অটোকনফ এম 4 ম্যাক্রোগুলির একটি এক্সটেনসিবল প্যাকেজ যা সফ্টওয়্যার উত্স কোড প্যাকেজগুলি স্বয়ংক্রিয়ভাবে কনফিগার করতে শেল স্ক্রিপ্টগুলি উত্পাদন করে These টেমপ্লেট ফাইল যা এম 4 ম্যাক্রো কল আকারে প্যাকেজটি ব্যবহার করতে পারে এমন অপারেটিং সিস্টেমের বৈশিষ্ট্যগুলি তালিকাভুক্ত করে। "
" Automake স্বয়ংক্রিয়ভাবে Makefile.in গনুহ স্ট্যান্ডার্ড কোডিং সঙ্গে সঙ্গতিশীল ফাইল জেনারেট করার জন্য একটি টুল। Automake Autoconf ব্যবহারের প্রয়োজন।"
সারগ্রন্থ:
বিনামূল্যে অনলাইন টিউটোরিয়াল:
প্রধান configure.ac LibreOffice এর নির্মাণ করতে ব্যবহৃত, কোডের 12k উপর লাইন (কিন্তু এছাড়াও আছে 57 সাবফোল্ডার অন্যান্য configure.ac ফাইল।)
এটি থেকে আমার উত্পন্ন কনফিগারটি কোডের 41k লাইনের ওপরে।
এবং Makefile.in এবং Makefile উভয়ই কোডের 499 লাইন। (তবে সাবফোল্ডারগুলিতে আরও 768 টি Makefile.in রয়েছে।)
Makefile.am - স্বয়ংক্রিয় করতে একটি ব্যবহারকারী ইনপুট ফাইল
কনফিগার.ইন - অটোকনফ-এ একটি ব্যবহারকারী ইনপুট ফাইল
অটোকনফ কনফিগার.ইন থেকে কনফিগার করে
স্বয়ংক্রিয়ভাবে Makefile.am থেকে Makefile.in তৈরি করে
কনফিগার Makefile.in থেকে Makefile উত্পন্ন করে
প্রাক্তন হিসাবে:
$]
configure.in Makefile.in
$] sudo autoconf
configure configure.in Makefile.in ...
$] sudo ./configure
Makefile Makefile.in
.in
দাঁড়াবে?