ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

jmake - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে jmake চালান

এটি হল jmake কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


jmake - একটি জেনেরিক মেকফাইল নির্মাতা

সাইনোপিসিস


jmake [ CPP অপশন ]

বর্ণনাঃ


জমকে একটি উচ্চ স্তরের বর্ণনা থেকে একটি মেকফাইল তৈরি করে Jmakefile ফাইল.
উত্পন্ন ফাইল হল a Makefile.SH একটি সাধারণ মেকফাইলের পরিবর্তে, যার মানে এটি প্রস্তুত
সাথে ব্যবহার করতে হবে metaconfig। বিশেষ করে, পরামিতি যেমন "কোথায়
install executables" দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত হবে কনফিগার করুন এবং শুধুমাত্র প্রয়োজনীয়
পরামিতি বিবেচনা করা হবে।

ব্যবহার করা jmake আপনাকে একটি লিখতে হবে Jmakefile প্রথমত, যা বর্ণনা করে যে জিনিসগুলি কেমন হবে৷
নির্মিত তোমার Jmakefile সি প্রি-এর মাধ্যমে একটি জেনেরিক টেমপ্লেটের ভিতরে অন্তর্ভুক্ত করা হবে
প্রসেসর এর মানে হল আপনি সাধারণ C /**/ মন্তব্য ব্যবহার করতে পারেন, কিন্তু শেল # নয়
মন্তব্য সি কমেন্ট জেনারেটেড এ উপস্থিত হবে না Makefile.SH কিন্তু লাইন শুরু
সঙ্গে ;# অবশেষে শেল মন্তব্য হিসাবে প্রদর্শিত হবে। যদি আপনাকে স্ট্রিং /* লিখতে হয়
উত্পন্ন Makefile.SH তাহলে আপনাকে এড়িয়ে যেতে হবে (অন্যথায় jmake হিসাবে এটা মনে হবে
একটি সি মন্তব্যের শুরু)। সহজভাবে * এর সামনে একটি # রাখুন, যেমন /#*।

আপনার হাতে ম্যাক্রোগুলির একটি সেট রয়েছে এবং এই সমস্ত ম্যাক্রোগুলি সূচকে তালিকাভুক্ত করা হয়েছে৷
ফাইল, কোডের টুকরো সহ তারা প্রসারিত হবে। সাধারণত, ক Jmakefile মোটামুটি
ছোট এবং এইভাবে একটি বিশাল তুলনায় বজায় রাখা সহজ মেকফাইল। কিছু অভ্যন্তরীণ শক্তিশালী কমান্ড
অনেক প্রচেষ্টা ব্যয় না করেই আপনাকে সহজেই বহনযোগ্য মেকফাইল লিখতে অনুমতি দেয়,
কারণ অন্য কেউ ইতিমধ্যে আপনার জন্য কাজ করেছে :-)।

আপনি যখন আপনার মেকফাইল তৈরি করতে চান, আপনি সাধারণত চালান না jmake কিন্তু ব্যবহার করুন jmkmf
স্ক্রিপ্ট যা একটি মোড়ক এবং আহ্বান করবে jmake সঠিক বিকল্পের সাথে।

সব জ্ঞান jmake দুটি ফাইলে রাখা হয়: টেমপ্লেট Jmake.tmpl এবং ম্যাক্রো
সংজ্ঞা ফাইল Jmake.rules. প্রথম ফাইলটি সহ দ্বিতীয়টি অন্তর্ভুক্ত করে
Jmakefile. জিনিসগুলি সঠিকভাবে ব্যবহার করতে সক্ষম হওয়ার জন্য কীভাবে কাজ করে তা জানতে কখনও কখনও প্রয়োজন হয়
প্রদত্ত সমস্ত বৈশিষ্ট্য। উদাহরণস্বরূপ, আপনাকে a এর জন্য আপনার নিজের নিয়ম লিখতে হতে পারে
নির্দিষ্ট প্রকল্প। যদিও আপনি পূর্বনির্ধারিত নিয়মগুলিকে ওভাররাইট করতে পারবেন না, আপনি বিস্তৃত করতে পারেন
Jmake.rules ফাইল বা শুধু আপনার ম্যাক্রো যোগ করুন আপনার Jmakefile. আপনি ব্যবহার করতে পারেন # অন্তর্ভুক্ত
বিবৃতি যখন আপনি এই ম্যাক্রোগুলি ভাগ করতে চান এবং কোডটি নকল করতে চান না।

Jmake.rules-এ সিনট্যাক্স মোটেও মার্জিত নয়, কিন্তু:

- এটি পার্স করা সহজ (যেমন sendmail.cf বা ট্রফ ফাইল)।
- নিয়ম খুব ঘন ঘন পরিবর্তন করার কথা নয়।
- পাঁচ মিনিটে আয়ত্ত করা যথেষ্ট সহজ। :-)

এখানে একটি ছোট বিবরণ:

1) বিভিন্ন মোকাবেলা করতে CPP বাস্তবায়ন:

· চূড়ান্ত @!\ মানে: লাইনের শেষ, পরবর্তী লাইন বাম মার্জিনে শুরু হয়।
· চূড়ান্ত @@\ মানে: লাইনের শেষ, পরবর্তী লাইনটি একটি ট্যাব দ্বারা ইন্ডেন্ট করতে হবে।

প্রতিটি লাইনের শেষে সবসময় @!\ অথবা @@\ এর একটি থাকা উচিত। একমাত্র
ব্যতিক্রম ম্যাক্রোগুলির জন্য যা একটি নিয়মের অংশ হিসাবে ব্যবহার করা হয় (যেমন
RemoveTargetProgram) সেই ক্ষেত্রে, প্রথম লাইন (যা ধারণ করে # define) উচিত
একটি একক ব্যাকস্ল্যাশ দিয়ে শেষ করুন।

2) প্রতীক সংজ্ঞা:

· > প্রতীক: প্রতীক সংজ্ঞায়িত করে।
· ?প্রতীক: : রাখে IF SYMBOL সংজ্ঞায়িত করা হয়েছে।
· % প্রতীক: : রাখে IF SYMBOL সংজ্ঞায়িত করা হয়নি।

?SYM নেস্ট করা যেতে পারে (যৌক্তিক এবং), যেমন:

?সিম্বল:%টোকেন:টেক্সট

SYMBOL সংজ্ঞায়িত এবং TOKEN অনির্ধারিত হলে যা পাঠ্য রাখবে। বাস্তবায়ন করা a
যৌক্তিক বা, নীচে দেখুন।

3) মেকফাইল লক্ষ্য পরীক্ষা:

·?লক্ষ্য?: : রাখে iff লক্ষ্য সংজ্ঞায়িত করা.
· %লক্ষ্য%: : রাখে iff লক্ষ্য সংজ্ঞায়িত করা হয় নি.

একটি মেকফাইল লক্ষ্য একটি স্বতন্ত্র লক্ষ্য হিসাবে সংজ্ঞায়িত করা হয়, উদাহরণস্বরূপ
depend.local লক্ষ্য, যা সংজ্ঞায়িত করা হবে:

depend.local:

এছাড়াও নোট করুন যে এটি শুধুমাত্র সংজ্ঞায়িত লক্ষ্যগুলির জন্য বৈধ so এ পর্যন্ত উত্পন্ন মধ্যে
makefile এটি এমন একটি পূর্বাভাস নয় যা লক্ষ্যগুলির জন্য পরীক্ষা করতে ব্যবহার করা যেতে পারে
শেষ পর্যন্ত পরবর্তী প্রজন্মের মধ্যে সংজ্ঞায়িত করা হবে।

4) কমান্ড:

কমান্ড পাস করা যেতে পারে jmake. তারা একটি অগ্রণী '|' দিয়ে শুরু করে। উপলব্ধ কমান্ড
হয়:

· |প্রত্যয় : যোগ করে .SUFFIXES: মেকফাইলে তালিকা।

· |নিয়ম: : যোগ করে বিল্ডিং নিয়ম বিভাগে।

· |নিয়ম: : আগের মতই, একটি অগ্রণী ট্যাব সহ।

· |skip: '-skip' দিয়ে শুরু হওয়া একটি লাইন পাওয়া না যাওয়া পর্যন্ত পাঠ্য এড়িয়ে যায়।

· |subst: বিভাগ শুরু হয় যেখানে লাইন পরিবর্তনশীল প্রতিস্থাপনের সাপেক্ষে হবে,
যতক্ষণ না '-subst' পাওয়া যায়। এর মানে হল যখন Makefile.SH চালানো হয়, তখন সব
এর মধ্যে $var এর উদাহরণ সাবস্ট বিভাগটি শেল দ্বারা প্রতিস্থাপিত হবে।

· |শেল: জেনারেটেড-এর মতো '-শেল'-এর সাথে মিল না হওয়া পর্যন্ত বিভাগ নির্গত করে
Makefile.SH. এটি প্রস্তুত করার জন্য দরকারী হতে পারে | কেস বিভাগ এইটা না
বাসা বাঁধার অনুমতি খোল বিভাগে।

· |কেস: এই কমান্ডটি অবশ্যই একটি শেল ভেরিয়েবল নাম দ্বারা অনুসরণ করতে হবে (এর ছাড়া
অগ্রণী '$' চিহ্ন) এবং একটি কেস-স্টাইল প্যাটার্ন, উদাহরণস্বরূপ স্ট্রিং "var in
f*"। এটি মেকফাইলে সংশ্লিষ্ট "কেস" পরীক্ষা তৈরি করবে।
"$var" মান এবং শুধুমাত্র এই পরীক্ষাটি সত্য হলেই বিভাগটি পর্যন্ত হবে
Makefile.SH চালানো হলে মেকফাইলে মিলিত '-case' তৈরি হবে। এটা
বাসা বাঁধা সম্ভব কেস বিভাগগুলি অবাধে।

· | প্রসারিত : এর সাথে '-expand' না হওয়া পর্যন্ত লাইন প্রসারিত করুন . একটি সম্পূর্ণ
উদাহরণ নীচে দেখানো হয়েছে।

· |একবার : '-একবার' পর্যন্ত পাঠ্য শুধুমাত্র প্রথমবার প্রদর্শিত হয়।

'|' কমান্ড নেস্ট করা যাবে না, যদি না অন্যথায় উল্লেখ করা হয়। বিশেষ করে, কারণে
এর সহজ বাস্তবায়ন | এড়িয়ে যান, এটা করা অসম্ভব | এড়িয়ে যান একটি এড়িয়ে যাওয়া ভিতরে
অংশ যাইহোক, ক | একবার বিভাগে থাকতে পারে | এড়িয়ে যান বিভাগ এটি বাসা বাঁধার অনুমতি দেওয়া হয়
| কেস ইচ্ছামত বিভাগ।

এখানে একটি যৌক্তিক বা বাস্তবায়ন করার একটি উপায়:

/* SYMBOL প্রয়োগ করে বা টোকেন না */
?SYMBOL:text /* SYMBOL থাকলে টেক্সট রাখে */
% SYMBOL: | এড়িয়ে যান
%টোকেন:টেক্সট /* টোকেন না থাকলে টেক্সট রাখে */
-এড়িয়ে যান

আসলে, এটি কুৎসিত, কারণ পাঠ্যটি দুবার উপস্থিত হতে হবে। ভাগ্যক্রমে, আমি করেছি
যে গঠন ব্যবহার করবেন না. :-)

প্রকৃতপক্ষে, আপনি নিশ্চয়ই ইতিমধ্যে অনুমান করেছেন, একটি যৌক্তিক OR বাস্তবায়নের সর্বোত্তম উপায়
ডি মরগানের আইন ব্যবহার করতে হয়:

not (p বা q) <=> p নয় এবং q নয়

/* SYMBOL প্রয়োগ করে বা টোকেন না (প্রয়াস #2) */
% SYMBOL:?TOKEN:|skip
টেক্সট /* SYMBOL হলে বা টোকেন না থাকলে */
-এড়িয়ে যান

কে বলেছে তারা যুক্তিকে পাত্তা দেয় না? ;-)

সম্প্রসারণ সঙ্গে সম্পন্ন করা হয় বিস্তৃত করা আদেশ কিছু এড়াতে এটি প্রদান করা হয়েছে
আপনি কিছু নির্বোধ লাইন পুনরাবৃত্তি করতে হবে যখন makefiles মধ্যে কষ্টকর লেখা যে শুধুমাত্র
ফাইলের নামের মধ্যে পার্থক্য, উদাহরণস্বরূপ। প্রথমে একটি উদাহরণ দেখা যাক:

|প্রসারিত a!foo বার! খ!হ্যাঁ না!
!a::
echo!a, !b
-বিস্তৃত করা

তারপর দুটি নিয়ম প্রিন্ট করা হবে, এবং প্রথমটির জন্য (a,b) এর মান হবে (foo,
হ্যাঁ), দ্বিতীয়টির জন্য (বার, না)। প্রতিস্থাপন '!' দ্বারা নিয়ন্ত্রিত হয়। চরিত্র
যদি প্রতিস্থাপিত শব্দটি অন্যটির অংশ হয়, তাহলে ^^ গঠনের সাথে বিচ্ছিন্ন করুন
যেমন: !b^^c মেকফাইল ম্যাক্রো ব্যবহার করা সম্ভব , এবং তারা
jmake দ্বারা সম্প্রসারিত হবে. আপনি যা চান তা না হলে, প্রথম '$' চিহ্নটি এড়িয়ে যান
(এটি একটি মেকফাইল এস্কেপ, অর্থাৎ আপনাকে অবশ্যই '$' দ্বিগুণ করতে হবে, এর আগে একটি দিয়ে নয়
ব্যাকস্ল্যাশ)। A // নাল প্রতিস্থাপন মান বোঝায়।
^^^ গঠনটি ^^ এর মতো আচরণ করে, অর্থাৎ এটি ছিনিয়ে নেওয়া হয়, তবে এটি যেকোনও অপসারণ করে
^^^ এর পরে সাদা স্থান অনুসরণ করুন। আপনি যদি ম্যাক্রো আর্গুমেন্টের জন্য কিছু প্রিপেন্ড করেন,
এবং সেই ম্যাক্রো আর্গুমেন্ট এর আগে স্পেস দিয়ে লেখা হয়েছিল, তারপর এটি আপনাকে অনুমতি দেবে
যে যুক্তির চূড়ান্ত মান ঠিক আগে কিছু সংযুক্ত করুন.

এখানে আরেকটি উদাহরণ যা দেখায় কিভাবে ম্যাক্রো এক্সপ্যান্ড ব্যবহার করা যেতে পারে। এটাই
সংজ্ঞায়িত Jmake.rules যেমন:

#প্রসারিত করুন (নিয়ম, প্যাটার্ন) @!\
|প্যাটার্ন প্রসারিত করুন @!\
নিয়ম @!\
-বিস্তৃত করা

তাই আমরা লিখতে পারেন Jmakefile:

| এড়িয়ে যান
A = foo বার
-এড়িয়ে যান

#নিয়ম সংজ্ঞায়িত করুন @!\
$(DIR)/!a^^.o: !a^^.o @@\
$(CC) -c !a^^.c @@\
$(MV) !a^^.o $(DIR)

প্রসারিত করুন(নিয়ম, a!$(A)!)

যা উৎপন্ন হবে Makefile.SH:

$(DIR)/foo.o: foo.o
$(CC)-c foo.c
$(MV) foo.o $(DIR)

$(DIR)/bar.o: bar.o
$(CC)-c bar.c
$(MV) bar.o $$(DIR)

‘ক’ ঘোষণা ঘিরে রাখা হয়েছে লাফালাফি করা, যাতে এটি প্রদর্শিত না হয়
Makefile.SH জেনারেট করেছে, তবে এটি বিবেচনায় নেওয়া হবে jmake জন্য
প্যাটার্নে প্রতিস্থাপন।

সম্প্রসারণের সংখ্যা সম্ভাব্য মানের সংখ্যা দ্বারা নির্ধারিত হয়
প্রথম প্যারামিটার অন্যান্য পরামিতি কম প্রতিস্থাপন মান আছে, তারা পাবেন
অকার্যকর

'-expand'-এর শেষে একটি রেগুলার এক্সপ্রেশন যোগ করা সম্ভব। এই নিয়মিত
প্রতিটি লাইনের শেষে সম্প্রসারণের চূড়ান্ত সেট থেকে অভিব্যক্তি সরানো হবে।
সিনট্যাক্স ব্যবহার করে প্রসারিত আইটেমে প্রতিস্থাপন করাও সম্ভব
(যদি 'f' প্রসারিত পরিবর্তনশীল হয়) !f:= কোথায় এবং দুজন নিয়মিত
অভিব্যক্তি (স্পেস ছাড়া)। নমুনা প্যাটার্ন দ্বারা প্রতিস্থাপিত হবে
(শুধুমাত্র প্রথম ঘটনাটি প্রতিস্থাপন করা হবে)।

পরিশেষে, আপনি প্রসারিত বিভাগে উল্লেখ করতে পারেন ভেরিয়েবল যার মান গণনা করা হয়
আরেকটি সম্প্রসারণের মাধ্যমে, যা জেনেরিককে সংজ্ঞায়িত করা সহজ করে তোলে Jmakefiles.

উদাহরণ:

SRC = foo.c bar.c
OBJ = \
|প্রসারিত করুন f!$(SRC)!
!f:\.c=\.o \
-বিস্তৃত করা \\
INC = \
|প্রসারিত করুন f!$(OBJ)!
!f:\.o=\.h \
-বিস্তৃত করা \\

যা উৎপন্ন হবে Makefile.SH:

SRC = foo.c bar.c
OBJ = \
foo.o \
বার.ও
INC = \
foo.h \
bar.h

আপনার নিয়মিত অভিব্যক্তি যেমন বিশেষ অক্ষর রক্ষা করতে ভুলবেন না
ব্যাকস্ল্যাশ, পয়েন্ট, ইত্যাদি...

সার্জারির একদা কমান্ড একটি নামের সাথে ট্যাগ করা হয়। প্রথমবার নামটি দেখা গেলেই একবার
নির্মাণ উপেক্ষা করা হয় এবং '-একবার' পর্যন্ত পাঠ্য উত্পন্ন কপি করা হবে
Makefile.SH. যাইহোক, একই নামের ভবিষ্যতের ঘটনাগুলি উপেক্ষা করা হবে (একদা
মত আচরণ করবে লাফালাফি করা).

উদাহরণ:

|একবার এই_একটি_নাম

-একদা

সার্জারির খোল কমান্ডটি Makefile.SH-এ একটি শেল ফ্র্যাগমেন্ট তৈরি করতে ব্যবহার করা যেতে পারে। জন্য
উদাহরণস্বরূপ, Jmakefile এ নিম্নলিখিত বিভাগ:

| শেল
কেস "$d_usegtk1" ইন
সংজ্ঞায়িত করুন) glib=1; gtk=1;;
যে সি
- শেল

Makefile.SH-এ বদ্ধ খণ্ডের প্রজন্মকে গণনা করতে বাধ্য করবে
এর মান সাবলীল এবং gtk কনফিগারেশন ভেরিয়েবলের উপর ভিত্তি করে ভেরিয়েবল
d_usegtk1 কনফিগার চালিয়ে সেট করুন।

পরিবর্তে, এটি পরবর্তীতে ব্যবহার করা যেতে পারে কেস অংশ সক্রিয় করতে বিভাগ
glib-1.x ব্যবহার করে GTK1 তৈরি করার সময় শুধুমাত্র মেকফাইল:

| 1 এ কেস গ্লিব
প্রদর্শন:
ইকো "বিল্ডিং ফর glib-1.x"
-ক্যাস

এই বিভাগটি Makefile.SH-তে এরকম কিছু তৈরি করবে:

!না!সাবস!
ক্ষেত্রে "$glib" ইন
1)
$spitshell >>Makefile <<'!না!SUBS!'
প্রদর্শন:
ইকো "বিল্ডিং ফর glib-1.x"
!না!সাবস!
;;
যে সি
$spitshell >>Makefile <<'!না!SUBS!'

এবং Makefile.SH চালানোর সময়, উপরের "ডিসপ্লে" নিয়মটি তখনই প্রদর্শিত হবে যখন
glib-1.x এর জন্য বিল্ডিং ফাইনালের রূপ Makefile নামক তাই উপর নির্ভর করতে পারেন
কনফিগারেশন অপশন নির্বাচিত যখন কনফিগার করুন চালানো হয়েছিল

5) প্রাথমিককরণ:

· + : প্রারম্ভিক বিভাগে পুরো লাইন রাখে।
· ++ প্রতীক : যোগ করে SYMBOL ম্যাক্রোতে।

6) ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবল:

ব্যবহারকারী সি-তে ব্যবহার করা অতিরিক্ত পতাকা হিসাবে CFLAGS, LDFLAGS বা DPFLAGS-কে সংজ্ঞায়িত করতে পারে
সংকলন, লিঙ্কিং ফেজ বা নির্ভরশীল লক্ষ্য। এইভাবে কিছু অতিরিক্ত যোগ করা সম্ভব
পতাকা যেমন -I বা নির্দিষ্ট সাব-ডিরেক্টরিতে মেকফাইলের জন্য লাইব্রেরি।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে jmake ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad