GoGPT Best VPN GoSearch

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

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

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

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

কার্যক্রম:

NAME এর


bmake - প্রোগ্রাম নির্ভরতা বজায় রাখা

সাইনোপিসিস


bmake [-BeikNnqrstWwX] [-C ডিরেক্টরি] [-D পরিবর্তনশীল] [-d পতাকা] [-f মেকফাইল] [-I ডিরেক্টরি]
[-J ব্যক্তিগত] [-j সর্বোচ্চ_চাকরি] [-m ডিরেক্টরি] [-T ফাইল] [-V পরিবর্তনশীল] [পরিবর্তনশীল = মান]
[লক্ষ্য ...]

বর্ণনাঃ


bmake অন্যান্য প্রোগ্রামের রক্ষণাবেক্ষণ সহজ করার জন্য ডিজাইন করা একটি প্রোগ্রাম। এর ইনপুট হল a
যে ফাইলগুলির উপর প্রোগ্রাম এবং অন্যান্য ফাইলগুলি নির্ভর করে তার নির্দিষ্টকরণের তালিকা। যদি না -f
মেকফাইল makefile অপশন দেওয়া আছে, bmake খোলার চেষ্টা করবে'মেকফাইল'তারপর'Makefile নামক'ইন
স্পেসিফিকেশন খুঁজে বের করার জন্য। যদি ফাইল '.নির্ভর' বিদ্যমান, এটি পড়া হয় (দেখুন mkdep(1))।

এই ম্যানুয়াল পৃষ্ঠাটি শুধুমাত্র একটি রেফারেন্স নথি হিসাবে উদ্দেশ্যে করা হয়েছে। আরো পুঙ্খানুপুঙ্খ বর্ণনা জন্য
of bmake এবং makefiles, পড়ুন PMake - A অভিভাবকসংবঁধীয়.

bmake এর বিষয়বস্তু পূর্ববর্তী হবে মেকফ্ল্যাগস কমান্ড লাইনে পরিবেশ পরিবর্তনশীল
তাদের পার্স করার আগে আর্গুমেন্ট।

বিকল্পগুলি নিম্নরূপ:

-B প্রতি কমান্ড এবং দ্বারা একটি একক শেল নির্বাহ করে পিছনের দিকে সামঞ্জস্যপূর্ণ হওয়ার চেষ্টা করুন
ক্রমানুসারে একটি নির্ভরতা লাইনের উত্স তৈরি করতে কমান্ডগুলি কার্যকর করা।

-C ডিরেক্টরি
পরিবর্তন ডিরেক্টরি মেকফাইল পড়ার আগে বা অন্য কিছু করার আগে। যদি
বহু -C বিকল্পগুলি নির্দিষ্ট করা হয়েছে, প্রতিটি পূর্ববর্তীটির তুলনায় ব্যাখ্যা করা হয়েছে:
-C / -C ইত্যাদি সমতুল্য -C জন্য / etc.

-D পরিবর্তনশীল
নির্ধারণ করা পরিবর্তনশীল বৈশ্বিক প্রেক্ষাপটে 1 হতে হবে।

-d [-]পতাকা
ডিবাগিং চালু করুন এবং কোন অংশগুলি নির্দিষ্ট করুন৷ bmake ডিবাগিং প্রিন্ট করতে হয়
তথ্য পতাকাগুলির আগে '-' না থাকলে সেগুলি যোগ করা হয়৷ মেকফ্ল্যাগস
এনভায়রনমেন্ট ভেরিয়েবল এবং যেকোনো শিশু মেক প্রসেস দ্বারা প্রক্রিয়া করা হবে। গতানুগতিক,
ডিবাগিং তথ্য স্ট্যান্ডার্ড ত্রুটি মুদ্রিত হয়, কিন্তু এটি ব্যবহার করে পরিবর্তন করা যেতে পারে
দ্য F ডিবাগিং পতাকা ডিবাগিং আউটপুট সবসময় আনবাফার করা হয়; উপরন্তু, যদি
ডিবাগিং সক্রিয় করা হয়েছে কিন্তু ডিবাগিং আউটপুট স্ট্যান্ডার্ড আউটপুটে নির্দেশিত হয় না
স্ট্যান্ডার্ড আউটপুট লাইন বাফার হয়. পতাকা নিম্নলিখিত এক বা একাধিক হয়:

A সমস্ত সম্ভাব্য ডিবাগিং তথ্য মুদ্রণ করুন; সমস্ত নির্দিষ্ট করার সমতুল্য
ডিবাগিং পতাকা

a সংরক্ষণাগার অনুসন্ধান এবং ক্যাশিং সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

C বর্তমান কাজের ডিরেক্টরি সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

c শর্তসাপেক্ষ মূল্যায়ন সম্পর্কে ডিবাগিং তথ্য প্রিন্ট করুন।

d ডিরেক্টরি অনুসন্ধান এবং ক্যাশিং সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

e ব্যর্থ কমান্ড এবং লক্ষ্য সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

F[+]ফাইলের নাম
ডিবাগিং আউটপুট কোথায় লেখা হয়েছে তা উল্লেখ করুন। এটাই হবে শেষ পতাকা,
কারণ এটি যুক্তির অবশিষ্টাংশ গ্রাস করে। চরিত্র হলে
'F' পতাকা '+' হওয়ার পরপরই ফাইলটি ওপেন হবে
সংযোজন মোড; অন্যথায় ফাইলটি ওভাররাইট করা হবে। যদি ফাইলের নাম হয়
'stdout' বা 'stderr' তারপর ডিবাগিং আউটপুট স্ট্যান্ডার্ডে লেখা হবে
যথাক্রমে আউটপুট বা স্ট্যান্ডার্ড ত্রুটি আউটপুট ফাইল বর্ণনাকারী (এবং '+'
বিকল্পের কোন প্রভাব নেই)। অন্যথায়, আউটপুট নাম লেখা হবে
ফাইল যদি ফাইলের নাম '.%d' শেষ হয় তাহলে '%d' পিড দ্বারা প্রতিস্থাপিত হয়।

f লুপ মূল্যায়ন সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

g1 কিছু করার আগে ইনপুট গ্রাফ প্রিন্ট করুন।

g2 ইনপুট গ্রাফ প্রিন্ট করুন সবকিছু করার পরে, বা ত্রুটিতে প্রস্থান করার আগে।

g3 ত্রুটিতে প্রস্থান করার আগে ইনপুট গ্রাফ প্রিন্ট করুন।

j একাধিক শেল চালানোর বিষয়ে ডিবাগিং তথ্য মুদ্রণ করুন।

l মেকফাইলে প্রিন্ট কমান্ডগুলি প্রিফিক্স করা হোক বা না হোক
'@' বা অন্যান্য "শান্ত" পতাকা দ্বারা। "জোরে" আচরণ হিসাবেও পরিচিত।

M লক্ষ্য সম্পর্কে "মেটা" মোড সিদ্ধান্ত সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

m পরিবর্তন সহ লক্ষ্য তৈরির বিষয়ে ডিবাগিং তথ্য মুদ্রণ করুন
তারিখ।

n কমান্ড চালানোর সময় তৈরি অস্থায়ী কমান্ড স্ক্রিপ্ট মুছে ফেলবেন না।
এই অস্থায়ী স্ক্রিপ্টগুলি নির্দেশিত ডিরেক্টরিতে তৈরি করা হয়
TMPDIR পরিবেশ পরিবর্তনশীল, বা ইন / tmp -র পরিবর্তে যদি TMPDIR আনসেট বা সেট করা থাকে
খালি স্ট্রিং. অস্থায়ী স্ক্রিপ্ট দ্বারা তৈরি করা হয় mkstemp(3), এবং আছে
ফর্মের নাম XXXXXX করুন. বিঃদ্রঃ: এটি TMPDIR-এ অনেক ফাইল তৈরি করতে পারে বা
/ tmp -র পরিবর্তেতাই যত্ন সহকারে ব্যবহার করুন।

p মেকফাইল পার্সিং সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

s প্রত্যয়-রূপান্তর নিয়ম সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

t লক্ষ্য তালিকা রক্ষণাবেক্ষণ সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

V জোর করে -V ভেরিয়েবলের কাঁচা মান প্রিন্ট করার বিকল্প।

v পরিবর্তনশীল অ্যাসাইনমেন্ট সম্পর্কে ডিবাগিং তথ্য মুদ্রণ করুন।

x দিয়ে শেল কমান্ড চালান -x তাই প্রকৃত কমান্ড যেমন আছে মুদ্রিত হয়
নিষ্পন্ন.

-e নির্দিষ্ট করুন যে এনভায়রনমেন্ট ভেরিয়েবল মেকফাইলের মধ্যে ম্যাক্রো অ্যাসাইনমেন্ট ওভাররাইড করে।

-f মেকফাইল
ডিফল্টের পরিবর্তে পড়ার জন্য একটি মেকফাইল নির্দিষ্ট করুনমেকফাইল' যদি মেকফাইল '-'
স্ট্যান্ডার্ড ইনপুট পড়া হয়। একাধিক makefiles নির্দিষ্ট করা যেতে পারে, এবং পড়া হয়
আদেশ নির্দিষ্ট।

-I ডিরেক্টরি
মেকফাইলস এবং অন্তর্ভুক্ত মেকফাইলস অনুসন্ধান করার জন্য একটি ডিরেক্টরি নির্দিষ্ট করুন। দ্য
সিস্টেম মেকফাইল ডিরেক্টরি (বা ডিরেক্টরি, দেখুন -m বিকল্প) স্বয়ংক্রিয়ভাবে হয়
এই তালিকার অংশ হিসাবে অন্তর্ভুক্ত।

-i মেকফাইলে শেল কমান্ডের অ-শূন্য প্রস্থান উপেক্ষা করুন। নির্দিষ্ট করার সমতুল্য
'-' মেকফাইলে প্রতিটি কমান্ড লাইনের আগে।

-J ব্যক্তিগত
এই বিকল্প করা উচিত না ব্যবহারকারী দ্বারা নির্দিষ্ট করা হবে।

যখন j একটি পুনরাবৃত্ত বিল্ডে বিকল্পটি ব্যবহার করা হয়, এই বিকল্পটি একটি মেক টু দ্বারা পাস করা হয়
শিশু বিল্ডের সমস্ত মেক প্রক্রিয়াগুলিকে এড়াতে সহযোগিতা করার অনুমতি দেয়
সিস্টেম ওভারলোডিং।

-j সর্বোচ্চ_চাকরি
কাজের সর্বোচ্চ সংখ্যা উল্লেখ করুন যে bmake যে কোন এক সময়ে চলমান হতে পারে। দ্য
মান সংরক্ষণ করা হয় .বানান।চাকরি. সামঞ্জস্য মোড বন্ধ করে, যদি না B পতাকা হয়
এছাড়াও নির্দিষ্ট. সামঞ্জস্য মোড বন্ধ হলে, a এর সাথে যুক্ত সমস্ত কমান্ড
লক্ষ্য একটি একক শেল আমন্ত্রণে সঞ্চালিত হয় প্রথাগত একের বিপরীতে
প্রতি লাইনে শেল আহ্বান। এটি প্রথাগত স্ক্রিপ্টগুলিকে ভেঙ্গে দিতে পারে যা পরিবর্তিত হয়
প্রতিটি কমান্ড আহবানে ডিরেক্টরি এবং তারপর একটি নতুন দিয়ে শুরু করার আশা করি
পরবর্তী লাইনে পরিবেশ। বরং স্ক্রিপ্টগুলি সংশোধন করা আরও দক্ষ
পিছনের সামঞ্জস্য চালু করার চেয়ে।

-k ত্রুটির সম্মুখীন হওয়ার পরে প্রক্রিয়াকরণ চালিয়ে যান, তবে শুধুমাত্র সেই লক্ষ্যগুলির উপর যা করে
যার সৃষ্টি ত্রুটির কারণ লক্ষ্যের উপর নির্ভর করে না।

-m ডিরেক্টরি
একটি ডিরেক্টরি উল্লেখ করুন যেখানে sys.mk এবং makefiles এর মাধ্যমে অন্তর্ভুক্ত করা হবে
ফাইল⟩-শৈলী বিবৃতি অন্তর্ভুক্ত. দ্য -m একটি গঠন করার জন্য বিকল্পটি একাধিকবার ব্যবহার করা যেতে পারে
অনুসন্ধান পথ। এই পথটি ডিফল্ট সিস্টেমকে ওভাররাইড করবে পাথ অন্তর্ভুক্ত করে:
/usr/share/mk। তদ্ব্যতীত সিস্টেমের অন্তর্ভুক্ত পাথ অনুসন্ধানে যুক্ত করা হবে
এর জন্য ব্যবহৃত পথ "ফাইল"-শৈলীতে বিবৃতি অন্তর্ভুক্ত রয়েছে (দেখুন -I বিকল্প)।

একটি ফাইল বা ডিরেক্টরির নাম হলে -m যুক্তি (বা মেকেসিস্প্যাথ পরিবেশ
পরিবর্তনশীল) তারপর ".../" স্ট্রিং দিয়ে শুরু হয় bmake নির্দিষ্ট জন্য অনুসন্ধান করা হবে
আর্গুমেন্ট স্ট্রিং এর অবশিষ্ট অংশে নামযুক্ত ফাইল বা ডিরেক্টরি। অনুসন্ধান
মেকফাইলের বর্তমান ডিরেক্টরি দিয়ে শুরু হয় এবং তারপরে উপরের দিকে কাজ করে
ফাইল সিস্টেমের রুট। অনুসন্ধান সফল হলে, তারপর ফলাফল ডিরেক্টরি
তে ".../" স্পেসিফিকেশন প্রতিস্থাপন করে -m যুক্তি. ব্যবহার করা হলে, এই বৈশিষ্ট্য অনুমতি দেয়
bmake কাস্টমাইজড sys.mk ফাইলের জন্য বর্তমান সোর্স ট্রিতে সহজেই অনুসন্ধান করতে (যেমন,
একটি যুক্তি হিসাবে ".../mk/sys.mk" ব্যবহার করে)।

-n যে কমান্ডগুলি কার্যকর করা হবে তা প্রদর্শন করুন, কিন্তু আসলে সেগুলি কার্যকর করবেন না
যদি না লক্ষ্য .MAKE বিশেষ উৎসের উপর নির্ভর করে (নীচে দেখুন)।

-N যে কমান্ডগুলি কার্যকর করা হত তা প্রদর্শন করুন, কিন্তু আসলে কোনটি কার্যকর করবেন না
তাদের মধ্যে; মধ্যে না নেমে শীর্ষ-স্তরের মেকফাইলগুলি ডিবাগ করার জন্য দরকারী
সাবডিরেক্টরি

-q কোনো কমান্ড কার্যকর করবেন না, তবে নির্দিষ্ট লক্ষ্যগুলি আপ-টু-ডেট থাকলে 0 থেকে প্রস্থান করুন
1, অন্যথায়।

-r সিস্টেম মেকফাইলে উল্লিখিত অন্তর্নির্মিত নিয়মগুলি ব্যবহার করবেন না।

-s কোনো কমান্ড ইকো করবেন না যেহেতু সেগুলি কার্যকর করা হয়। নির্দিষ্ট করার সমতুল্য '@' আগে
মেকফাইলের প্রতিটি কমান্ড লাইন।

-T ট্রেসফাইল
সঙ্গে ব্যবহার করা হলে -j পতাকা, একটি ট্রেস রেকর্ড যোগ করুন ট্রেসফাইল প্রতিটি কাজ শুরু করার জন্য
এবং সম্পন্ন।

-t মেকফাইলে উল্লিখিত একটি লক্ষ্য পুনঃনির্মাণের পরিবর্তে, এটি তৈরি করুন বা আপডেট করুন
এটিকে আপ-টু-ডেট দেখানোর জন্য এর পরিবর্তনের সময়।

-V পরিবর্তনশীল
প্রিন্ট bmakeএর মান সম্পর্কে ধারণা পরিবর্তনশীল, বিশ্বব্যাপী প্রেক্ষাপটে। নির্মাণ করবেন না
কোনো লক্ষ্য। এই বিকল্পের একাধিক উদাহরণ নির্দিষ্ট করা যেতে পারে; ভেরিয়েবল হবে
প্রতিটি নাল বা অনির্ধারিত ভেরিয়েবলের জন্য একটি ফাঁকা লাইন সহ প্রতি লাইনে একটি প্রিন্ট করা হবে। যদি
পরিবর্তনশীল একটি '$' থাকে তাহলে প্রিন্ট করার আগে মানটি প্রসারিত হবে।

-W মেকফাইল পার্সিংয়ের সময় যে কোনও সতর্কতাকে ত্রুটি হিসাবে বিবেচনা করুন।

-w প্রিন্ট করা এবং ডিরেক্টরি বার্তা ছেড়ে যাওয়া, প্রি এবং পোস্ট প্রসেসিং।

-X কমান্ড লাইনে পাস করা ভেরিয়েবলগুলিকে পৃথকভাবে পরিবেশে রপ্তানি করবেন না।
কমান্ড লাইনে পাস করা ভেরিয়েবলগুলি এখনও এর মাধ্যমে রপ্তানি করা হয় মেকফ্ল্যাগস
পরিবেশ সূচক. এই বিকল্পটি এমন সিস্টেমে উপযোগী হতে পারে যেগুলির সীমা ছোট
কমান্ড আর্গুমেন্ট আকারের উপর.

পরিবর্তনশীল = মান
ভেরিয়েবলের মান নির্ধারণ করুন পরিবর্তনশীল থেকে মূল্য. সাধারণত, সব মান পাস
কমান্ড লাইন পরিবেশে সাব-মেকগুলিতে রপ্তানি করা হয়। দ্য -X পতাকা
এই আচরণ নিষ্ক্রিয় করে। পরিবর্তনশীল অ্যাসাইনমেন্টগুলিকে POSIX-এর বিকল্পগুলি অনুসরণ করা উচিত৷
সামঞ্জস্য কিন্তু কোন আদেশ প্রয়োগ করা হয় না.

একটি মেকফাইলে সাতটি ভিন্ন ধরনের লাইন রয়েছে: ফাইল নির্ভরতা স্পেসিফিকেশন,
শেল কমান্ড, পরিবর্তনশীল অ্যাসাইনমেন্ট, বিবৃতি অন্তর্ভুক্ত, শর্তসাপেক্ষ নির্দেশাবলী, লুপের জন্য,
এবং মন্তব্য।

সাধারণভাবে, লাইনগুলিকে একটি ব্যাকস্ল্যাশ দিয়ে শেষ করে এক লাইন থেকে পরের লাইনে চালিয়ে যাওয়া যেতে পারে
('\')। নিচের লাইনে ট্রেলিং নিউলাইন ক্যারেক্টার এবং প্রারম্ভিক হোয়াইটস্পেস হল
একটি একক স্থানে সংকুচিত।

ফাইল নির্ভরতা বৈশিষ্ট্যসমুহ


নির্ভরতা লাইনে এক বা একাধিক লক্ষ্য, একটি অপারেটর এবং শূন্য বা একাধিক উৎস থাকে।
এটি একটি সম্পর্ক তৈরি করে যেখানে লক্ষ্যগুলি উত্সের উপর "নির্ভর করে" এবং সাধারণত হয়
তাদের থেকে সৃষ্টি। লক্ষ্য এবং উৎসের মধ্যে সঠিক সম্পর্ক নির্ধারণ করা হয়
অপারেটর দ্বারা যা তাদের আলাদা করে। তিনটি অপারেটর নিম্নরূপ:

: একটি লক্ষ্যকে পুরানো বলে গণ্য করা হয় যদি এর পরিবর্তনের সময় যেকোনোটির চেয়ে কম হয়
এর উত্সগুলির। একটি লক্ষ্যের জন্য উত্সগুলি নির্ভরতা লাইনের উপর জমা হয় যখন এটি
অপারেটর ব্যবহার করা হয়। টার্গেট থাকলে মুছে ফেলা হয় bmake বাধা দেওয়া হয়।

! লক্ষ্যগুলি সর্বদা পুনরায় তৈরি করা হয়, তবে যতক্ষণ না সমস্ত উত্স পরীক্ষা করা হয় এবং পুনরায়-
প্রয়োজন হিসাবে তৈরি করা হয়েছে। একটি লক্ষ্যের জন্য উত্সগুলি নির্ভরতা লাইনের উপর জমা হয় যখন এটি
অপারেটর ব্যবহার করা হয়। টার্গেট থাকলে মুছে ফেলা হয় bmake বাধা দেওয়া হয়।

:: যদি কোন উৎস নির্দিষ্ট করা না থাকে, লক্ষ্য সর্বদা পুনরায় তৈরি করা হয়। অন্যথায়, একটি লক্ষ্য
পুরানো বলে বিবেচিত হয় যদি এর কোনো উৎসের থেকে সাম্প্রতিককালে পরিবর্তন করা হয়
লক্ষ্য একটি লক্ষ্যের জন্য উত্সগুলি নির্ভরতা লাইনের উপর জমা হয় না যখন এটি
অপারেটর ব্যবহার করা হয়। টার্গেট থাকলে মুছে যাবে না bmake বাধা দেওয়া হয়।

লক্ষ্য এবং উত্সগুলিতে শেল ওয়াইল্ডকার্ড মান '?', '*', '[]', এবং '{}' থাকতে পারে। দ্য
মান '?', '*', এবং '[]' শুধুমাত্র লক্ষ্যের চূড়ান্ত উপাদানের অংশ হিসাবে ব্যবহার করা যেতে পারে বা
উৎস, এবং বিদ্যমান ফাইল বর্ণনা করতে ব্যবহার করা আবশ্যক। মান '{}' অগত্যা হতে হবে না
বিদ্যমান ফাইল বর্ণনা করতে ব্যবহৃত। সম্প্রসারণ ডিরেক্টরি ক্রমে হয়, বর্ণানুক্রমিকভাবে নয়
শেল মধ্যে সম্পন্ন.

শেল কম্যান্ডস


প্রতিটি টার্গেট এর সাথে যুক্ত থাকতে পারে শেল কমান্ডের এক বা একাধিক লাইন, সাধারণত ব্যবহৃত হয়
লক্ষ্য তৈরি করতে। এই স্ক্রিপ্টের প্রতিটি লাইন অবশ্যই একটি ট্যাব দ্বারা আগে হতে হবে. (এর জন্য
ঐতিহাসিক কারণ, স্পেস গ্রহণ করা হয় না।) যদিও লক্ষ্যগুলি অনেক নির্ভরতার মধ্যে উপস্থিত হতে পারে
লাইনগুলি যদি ইচ্ছা হয়, ডিফল্টরূপে এই নিয়মগুলির মধ্যে শুধুমাত্র একটি সৃষ্টি স্ক্রিপ্ট দ্বারা অনুসরণ করা যেতে পারে।
যদি '::' অপারেটর ব্যবহার করা হয়, তবে, সমস্ত নিয়মে স্ক্রিপ্ট এবং স্ক্রিপ্টগুলি অন্তর্ভুক্ত থাকতে পারে
পাওয়া আদেশে মৃত্যুদন্ড কার্যকর করা হয়েছে।

প্রতিটি লাইনকে একটি পৃথক শেল কমান্ড হিসাবে বিবেচনা করা হয়, যদি না লাইনের শেষ a দিয়ে এস্কেপ করা হয়
ব্যাকস্ল্যাশ ('\') যে ক্ষেত্রে সেই লাইন এবং পরেরটি একত্রিত হয়। যদি প্রথম অক্ষর
কমান্ডের কোন সমন্বয় হয় '@','+', বা'-', আদেশকে বিশেষভাবে বিবেচনা করা হয়। ক
'@' এটি কার্যকর করার আগে কমান্ডটি প্রতিধ্বনিত না হওয়ার কারণ। ক'+' আদেশের কারণ হয়
এমনকি যখন মৃত্যুদন্ড কার্যকর করা হবে -n দেওয়া হয়. এই .মেক বিশেষ প্রভাব অনুরূপ
উত্স, প্রভাবটি একটি স্ক্রিপ্টের একক লাইনে সীমাবদ্ধ করা যেতে পারে। ক'-'ইন
সামঞ্জস্য মোড কমান্ড লাইনের যেকোন নন-জিরো এক্সিট স্ট্যাটাস উপেক্ষা করে।

কখন bmake সঙ্গে কাজ মোডে চালানো হয় -j সর্বোচ্চ_চাকরি, লক্ষ্যের জন্য সম্পূর্ণ স্ক্রিপ্ট খাওয়ানো হয়
শেল একটি একক উদাহরণ. সামঞ্জস্যতা (নন-জবস) মোডে, প্রতিটি কমান্ড a এ চালানো হয়
পৃথক প্রক্রিয়া। যদি কমান্ডে কোনো শেল মেটা অক্ষর থাকে
('#=|^(){};&<>*?[]:$`\\n') এটি শেলে পাঠানো হবে; অন্যথায় bmake চেষ্টা করবে
সরাসরি মৃত্যুদন্ড যদি একটি লাইন ' দিয়ে শুরু হয়-' এবং শেলটি ErrCtl সক্ষম করেছে তারপর ব্যর্থ হয়েছে
কমান্ড লাইনের সামঞ্জস্য মোডে হিসাবে উপেক্ষা করা হবে। অন্যথায়'-' প্রভাবিত করে
সম্পূর্ণ কাজ; স্ক্রিপ্টটি প্রথম কমান্ড লাইনে থামবে যা ব্যর্থ হয়, তবে লক্ষ্য হবে
ব্যর্থ হয়েছে বলে গণ্য করা হবে না।

মেকফাইলস লিখতে হবে যাতে মোড bmake অপারেশন তাদের পরিবর্তন না
আচরণ উদাহরণস্বরূপ, সম্ভাব্য ছাড়াই "cd" বা "chdir" ব্যবহার করতে হবে এমন যেকোনো কমান্ড
পরবর্তী কমান্ডের জন্য ডিরেক্টরি পরিবর্তন করা বন্ধনীতে রাখা উচিত যাতে এটি কার্যকর হয়
একটি subshell মধ্যে একটি শেল ব্যবহার জোরপূর্বক, রেখা বিরতি এড়াতে যাতে করতে
পুরো স্ক্রিপ্ট এক কমান্ড। উদাহরণ স্বরূপ:

এড়িয়ে চলুন-chdir-পার্শ্বপ্রতিক্রিয়া:
@echo বিল্ডিং $@ `pwd`-এ
@(cd ${.CURDIR} && ${MAKE} $@)
@echo `pwd`-এ ফিরে যান

নিশ্চিত-এক-শেল-নির্বিশেষে-মোড:
@echo বিল্ডিং $@ in `pwd`; \
(cd ${.CURDIR} && ${MAKE} $@); \
'pwd'-এ ইকো ব্যাক করুন

থেকে bmake ইচ্ছা chdir(2) থেকে '.OBJDIR' যে কোনো লক্ষ্য বাস্তবায়নের আগে প্রতিটি শিশু প্রক্রিয়া
এটির বর্তমান কার্যকারী ডিরেক্টরি হিসাবে এটি দিয়ে শুরু হয়।

পরিবর্তনশীল কার্যভারের


মেকের ভেরিয়েবলগুলি অনেকটা শেলের ভেরিয়েবলের মতো, এবং ঐতিহ্য অনুসারে, সবগুলি নিয়ে গঠিত৷
বড় হাতের অক্ষর।

পরিবর্তনশীল নিয়োগ সংশোধনকারীদের
পাঁচটি অপারেটর যেগুলি ভেরিয়েবলের মান নির্ধারণ করতে ব্যবহার করা যেতে পারে তা নিম্নরূপ:

= ভেরিয়েবলে মান বরাদ্দ করুন। আগের যেকোনো মান ওভাররাইড করা হয়।

+= ভেরিয়েবলের বর্তমান মানের সাথে মান যোগ করুন।

?= ভেরিয়েবলের মান বরাদ্দ করুন যদি এটি ইতিমধ্যে সংজ্ঞায়িত না থাকে।

:= সম্প্রসারণের সাথে বরাদ্দ করুন, অর্থাৎ ভেরিয়েবলে বরাদ্দ করার আগে মানটি প্রসারিত করুন।
সাধারণত, পরিবর্তনশীল উল্লেখ না করা পর্যন্ত সম্প্রসারণ করা হয় না। বিঃদ্রঃ: তথ্যসূত্র
অনির্ধারিত ভেরিয়েবল হল না প্রসারিত পরিবর্তনশীল হলে এটি সমস্যা সৃষ্টি করতে পারে
সংশোধক ব্যবহার করা হয়।

!= মানটি প্রসারিত করুন এবং এটি সম্পাদনের জন্য শেলে প্রেরণ করুন এবং ফলাফলটি বরাদ্দ করুন
পরিবর্তনশীল ফলাফলের যেকোনো নতুন লাইন স্পেস দিয়ে প্রতিস্থাপিত হয়।

বরাদ্দের আগে যেকোনো সাদা-স্থান মূল্য মুছে ফেলা; যদি মান যুক্ত করা হয়, a
ভেরিয়েবলের পূর্ববর্তী বিষয়বস্তু এবং সংযুক্তের মধ্যে একক স্থান সন্নিবেশ করা হয়
মান।

ভেরিয়েবলের নামটি হয় কোঁকড়া ধনুর্বন্ধনী ('{}') অথবা
বন্ধনী ('()') এবং এর আগে ডলার চিহ্ন ('$') সহ। যদি ভেরিয়েবলের নাম থাকে
শুধুমাত্র একটি অক্ষর, পার্শ্ববর্তী বন্ধনী বা বন্ধনী প্রয়োজন হয় না। এই খাটো
ফর্ম সুপারিশ করা হয় না.

যদি পরিবর্তনশীল নামের একটি ডলার থাকে, তাহলে নামটি প্রথমে প্রসারিত হয়। এই অনুমতি দেয়
প্রায় নির্বিচারে পরিবর্তনশীল নাম, তবে ডলার, ধনুর্বন্ধনী, বন্ধনী, বা
হোয়াইটস্পেস সত্যিই সেরা এড়ানো হয়!

একটি ভেরিয়েবল সম্প্রসারণের ফলাফলে একটি ডলার চিহ্ন ('$') থাকলে স্ট্রিংটি প্রসারিত হয়
আবার.

পরিবর্তনশীল প্রতিস্থাপন তিনটি স্বতন্ত্র সময়ে ঘটে, পরিবর্তনশীলটি কোথায় তার উপর নির্ভর করে
ব্যবহৃত.

1. লাইন পড়ার সাথে সাথে নির্ভরতা লাইনের ভেরিয়েবলগুলি প্রসারিত হয়।

2. শেল কমান্ডের ভেরিয়েবলগুলি যখন শেল কমান্ড কার্যকর করা হয় তখন প্রসারিত হয়।

3. “.for” লুপ ইনডেক্স ভেরিয়েবল প্রতিটি লুপ পুনরাবৃত্তিতে প্রসারিত হয়। উল্লেখ্য যে অন্য
ভেরিয়েবলগুলি লুপের ভিতরে প্রসারিত হয় না তাই নিম্নলিখিত উদাহরণ কোড:

.আমি 1 2 3 তে
a+= ${i}
j= ${i}
b+= ${j}
শেষের জন্য

সব:
@echo ${a}
@echo ${b}

মুদ্রণ করবে:

1 2 3
3 3 3

কারণ লুপ চালানোর পর ${a}-এ "1 2 3" থাকলেও ${b}-এ "${j} আছে
${j} ${j}" যা "3 3 3" এ প্রসারিত হয় যেহেতু লুপ সম্পূর্ণ হওয়ার পরে ${j}-এ "3" থাকে।

পরিবর্তনশীল ক্লাস
ভেরিয়েবলের চারটি ভিন্ন শ্রেণীর (ক্রমবর্ধমান অগ্রাধিকার অনুযায়ী) হল:

পরিবেশ পরিবর্তনশীল
ভেরিয়েবল এর অংশ হিসাবে সংজ্ঞায়িত bmakeএর পরিবেশ।

গ্লোবাল ভেরিয়েবল
মেকফাইলে বা অন্তর্ভুক্ত মেকফাইলে সংজ্ঞায়িত ভেরিয়েবল।

কমান্ড লাইন ভেরিয়েবল
কমান্ড লাইনের অংশ হিসাবে সংজ্ঞায়িত ভেরিয়েবল।

স্থানীয় ভেরিয়েবল
ভেরিয়েবল যা নির্দিষ্ট লক্ষ্যের জন্য নির্দিষ্ট করা হয়।

স্থানীয় ভেরিয়েবলগুলি সমস্তই অন্তর্নির্মিত এবং তাদের মানগুলি লক্ষ্য থেকে লক্ষ্যে জাদুকরীভাবে পরিবর্তিত হয়। এটা
নতুন স্থানীয় ভেরিয়েবল সংজ্ঞায়িত করা বর্তমানে সম্ভব নয়। সাতটি স্থানীয় ভেরিয়েবল হল
অনুসরণ:

.ALLSRC এই লক্ষ্যের জন্য সমস্ত উত্সের তালিকা; এই নামেও পরিচিত '>'.

.আর্কাইভ সংরক্ষণাগার ফাইলের নাম; এই নামেও পরিচিত '!'.

.IMPSRC প্রত্যয়-রূপান্তর নিয়মে, উৎসের নাম/পথ যা থেকে
লক্ষ্য রূপান্তরিত করা হয় ("উহ্য" উত্স); এই নামেও পরিচিত '<' এটা
সুস্পষ্ট নিয়মে সংজ্ঞায়িত করা হয় না।

.সদস্য সংরক্ষণাগার সদস্যের নাম; এই নামেও পরিচিত '%'.

.OODATE এই লক্ষ্যের জন্য উত্সের তালিকা যা পুরানো বলে মনে করা হয়েছিল; পাশাপাশি পরিচিত
হিসাবে '?'.

.PREFIX টার্গেটের ফাইলের উপসর্গ, শুধুমাত্র ফাইলের অংশ ধারণ করে, কোন প্রত্যয় নেই
অথবা পূর্ববর্তী ডিরেক্টরি উপাদান; এই নামেও পরিচিত '*' প্রত্যয় হতে হবে
সাথে ঘোষিত পরিচিত প্রত্যয়গুলির মধ্যে একটি .Suffixes অথবা এটা হবে না
স্বীকৃত

টার্গেট লক্ষ্যের নাম; এই নামেও পরিচিত '@'.

সংক্ষিপ্ত রূপ ('>','!','<','%','?','*', এবং '@') অনগ্রসরদের জন্য অনুমোদিত
ঐতিহাসিক মেকফাইল এবং উত্তরাধিকার POSIX তৈরির সাথে সামঞ্জস্যপূর্ণ এবং সুপারিশ করা হয় না।

বিরাম চিহ্ন সহ এই ভেরিয়েবলগুলির রূপগুলি অবিলম্বে 'D' বা 'F' দ্বারা অনুসরণ করে, যেমন
'$(@D)', লিগ্যাসি ফর্মগুলি ':H' এবং ':T' সংশোধক ব্যবহার করার সমতুল্য। এই ফর্মগুলি
AT&T সিস্টেম V UNIX makefiles এবং POSIX এর সাথে সামঞ্জস্যের জন্য গৃহীত কিন্তু নয়
সুপারিশ করেন।

স্থানীয় ভেরিয়েবলগুলির মধ্যে চারটি নির্ভরতা লাইনের উত্সগুলিতে ব্যবহার করা যেতে পারে কারণ তারা প্রসারিত হয়
লাইনের প্রতিটি টার্গেটের জন্য সঠিক মান। এই ভেরিয়েবলগুলি হল 'টার্গেট','.PREFIX'
'.আর্কাইভ', এবং '.সদস্য'.

অতিরিক্ত বিল্ট-ইন ভেরিয়েবল
উপরন্তু, bmake নিম্নলিখিত ভেরিয়েবলগুলি সেট করে বা জানে:

$ একটি একক ডলার চিহ্ন '$', অর্থাৎ '$$' একটি একক ডলার চিহ্নে প্রসারিত হয়।

.ALLTARGETS মেকফাইলে সম্মুখীন হওয়া সমস্ত লক্ষ্যগুলির তালিকা। সময় মূল্যায়ন করা হলে
মেকফাইল পার্সিং, শুধুমাত্র সেই লক্ষ্যগুলিকে তালিকাভুক্ত করে যা এখন পর্যন্ত সম্মুখীন হয়েছে।

.CURDIR ডিরেক্টরি যেখানে একটি পথ bmake মৃত্যুদন্ড কার্যকর করা হয়েছিল। বর্ণনা পড়ুন
আরো বিস্তারিত জানার জন্য 'PWD'-এর।

.অর্ন্তভুক্ত
এই Makefile ফাইলের ডিরেক্টরি থেকে অন্তর্ভুক্ত করা হয়েছে.

.IncludedFROMFILE
এই Makefile ফাইলের ফাইলের নাম থেকে অন্তর্ভুক্ত করা হয়েছে.

নামটি তৈরি করুন bmake এর সাথে মৃত্যুদন্ড কার্যকর করা হয়েছিল (argv[0]) সামঞ্জস্যের জন্য bmake
এছাড়াও সেট .বানান একই মান সহ। ব্যবহার করার জন্য পছন্দের পরিবর্তনশীল হল
এনভায়রনমেন্ট ভেরিয়েবল MAKE কারণ এটি অন্যান্য সংস্করণের সাথে আরও সামঞ্জস্যপূর্ণ
of bmake এবং একই নামের বিশেষ লক্ষ্যের সাথে বিভ্রান্ত করা যাবে না।

.MAKE.DEPENDFILE
মেকফাইলের নাম দেয় (ডিফল্ট '.নির্ভর') যা থেকে উত্পন্ন নির্ভরতা
পড়ুন।

.MAKE.EXPAND_VARIABLES
একটি বুলিয়ান যা ডিফল্ট আচরণ নিয়ন্ত্রণ করে -V বিকল্প।

.বানান.রপ্তানি এর দ্বারা রপ্তানি করা ভেরিয়েবলের তালিকা bmake.

.বানান।চাকরি যুক্তি -j বিকল্প।

.MAKE.JOB.PREFIX
If bmake দিয়ে চালানো হয় j তারপর প্রতিটি লক্ষ্যের জন্য আউটপুট একটি টোকেন সহ উপসর্গ করা হয়
'---লক্ষ্য---' এর প্রথম অংশের মাধ্যমে নিয়ন্ত্রণ করা যায়
.MAKE.JOB.PREFIX। যদি .MAKE.JOB.PREFIX খালি, কোন টোকেন প্রিন্ট করা হয় না।
যেমন: .MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}] হবে
'---মেক[1234] টার্গেট ---' এর মতো টোকেন তৈরি করে ট্র্যাক করা সহজ করে তোলে
সমান্তরালতার ডিগ্রি অর্জন করা হচ্ছে।

MAKEFLAGS পরিবেশ পরিবর্তনশীল 'MAKEFLAGS'-এ যে কোনো কিছু থাকতে পারে
উপর নির্দিষ্ট bmakeএর কমান্ড লাইন। যে কোনো কিছুতে উল্লেখ করা আছে bmakeএর আদেশ
লাইনটি 'MAKEFLAGS' ভেরিয়েবলের সাথে যুক্ত করা হয় যা তারপরে প্রবেশ করা হয়
সব প্রোগ্রামের জন্য পরিবেশ যা bmake চালায়

.MAKE.LEVEL এর পুনরাবৃত্তি গভীরতা bmake. এর প্রাথমিক উদাহরণ bmake 0 হবে, এবং
একটি বর্ধিত মান পরবর্তী দ্বারা দেখা হবে পরিবেশে রাখা হয়
প্রজন্ম এটি পরীক্ষার অনুমতি দেয় যেমন: .if ${.MAKE.LEVEL} == 0 রক্ষা করতে
জিনিস যা শুধুমাত্র প্রাথমিক উদাহরণে মূল্যায়ন করা উচিত bmake.

.MAKE.MAKEFILE_PREFERENCE৷
মেকফাইল নামের অর্ডারকৃত তালিকা (ডিফল্ট 'মেকফাইল','Makefile নামক') যে
bmake খুঁজবে।

.MAKE.MAKEFILES
মেকফাইলের তালিকাটি পড়ে bmake, যা ট্র্যাকিং জন্য দরকারী
নির্ভরতা সংখ্যা নির্বিশেষে প্রতিটি মেকফাইল শুধুমাত্র একবার রেকর্ড করা হয়
বার বার পড়া.

.MAKE.MODE সমস্ত মেকফাইল পড়ার পরে প্রক্রিয়া করা হয়েছে। যে মোড প্রভাবিত করতে পারে bmake রান
in. এটিতে অনেকগুলি কীওয়ার্ড থাকতে পারে:

compat মত -B, রাখে bmake "কম্প্যাট" মোডে।

মেটা রাখে bmake "মেটা" মোডে, যেখানে মেটা ফাইল তৈরি করা হয়
প্রতিটি টার্গেট ক্যাপচার করার জন্য কমান্ড রান, আউটপুট উৎপন্ন হয় এবং
if ফাইলমন(4) উপলব্ধ, সিস্টেম কল যা হয়
আগ্রহ bmake. ক্যাপচার আউটপুট যখন খুব দরকারী হতে পারে
নির্ণয়ের ত্রুটি।

curdirOk= bf সাধারণত bmake 'এ .meta ফাইল তৈরি করবে না.CURDIR' এই
সেট করে ওভাররাইড করা যেতে পারে bf একটি মান যা প্রতিনিধিত্ব করে
সত্য।

প্রায় ডিবাগিংয়ের জন্য, এটি পরিবেশকে অন্তর্ভুক্ত করতে কার্যকর হতে পারে
মেটা ফাইল।

ভার্বোস যদি "মেটা" মোডে থাকে, তাহলে লক্ষ্যটি তৈরি করা সম্পর্কে একটি সূত্র প্রিন্ট করুন।
বিল্ড অন্যথায় নিঃশব্দে চলমান হলে এটি দরকারী। দ্য
বার্তাটি এর মান মুদ্রিত করেছে: .MAKE.META.PREFIX.

ignore-cmd কিছু মেকফাইলের কমান্ড থাকে যা কেবল স্থিতিশীল নয়। এই
কীওয়ার্ডের কারণে তাদের উপেক্ষা করা হয় কিনা তা নির্ধারণ করার জন্য
লক্ষ্য "মেটা" মোডে পুরানো। আরো দেখুন NOMETA_CMP.

নীরব = bf If bf সত্য, যখন একটি .meta ফাইল তৈরি করা হয়, লক্ষ্য চিহ্নিত করুন
.নীরব.

.MAKE.META.BAILIWICK
"মেটা" মোডে, ডিরেক্টরিগুলির সাথে মেলে এমন উপসর্গগুলির একটি তালিকা প্রদান করে
দ্বারা নিয়ন্ত্রিত bmake. যদি একটি ফাইলের বাইরে তৈরি করা হয় .OBJDIR কিন্তু
উল্লেখিত বেলিউইক অনুপস্থিত, বর্তমান টার্গেটের বাইরে বিবেচিত
তারিখ।

.MAKE.META.CREATED
"মেটা" মোডে, এই ভেরিয়েবলে আপডেট করা সমস্ত মেটা ফাইলের একটি তালিকা থাকে।
খালি না হলে, এটি প্রক্রিয়াকরণ ট্রিগার করতে ব্যবহার করা যেতে পারে .MAKE.META.FILES.

.MAKE.META.FILES
"মেটা" মোডে, এই ভেরিয়েবলটিতে ব্যবহৃত সমস্ত মেটা ফাইলের একটি তালিকা রয়েছে
(আপডেট বা না)। এই তালিকাটি মেটা ফাইলগুলি প্রক্রিয়া করতে ব্যবহার করা যেতে পারে
নির্ভরতা তথ্য নিষ্কাশন.

.MAKE.META.IGNORE_PATHS
পথ উপসর্গগুলির একটি তালিকা প্রদান করে যেগুলি উপেক্ষা করা উচিত; কারন
বিষয়বস্তু সময়ের সাথে পরিবর্তিত হবে বলে আশা করা হচ্ছে। ডিফল্ট তালিকা অন্তর্ভুক্ত: '/ দেব
জন্য / etc / proc / tmp -র পরিবর্তে / var / রান / var / tmp'

.MAKE.META.PREFIX
"মেটা ভার্বোজ" এ আপডেট হওয়া প্রতিটি মেটা ফাইলের জন্য মুদ্রিত বার্তা সংজ্ঞায়িত করে
মোড. ডিফল্ট মান হল:
বিল্ডিং ${.TARGET:H:tA}/${.TARGET:T}

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

.MAKE.PATH_FILEMON৷
If bmake দিয়ে নির্মিত হয়েছিল ফাইলমন(4) সমর্থন, এই পথ সেট করা হয়
ডিভাইস নোড। এটি এই সমর্থনের জন্য মেকফাইলগুলিকে পরীক্ষা করার অনুমতি দেয়।

.MAKE.PID এর প্রসেস-আইডি bmake.

.MAKE.PPID এর মূল প্রক্রিয়া-আইডি bmake.

.MAKE.SAVE_DOLLARS
মান একটি বুলেন হওয়া উচিত যা করার সময় '$$' সংরক্ষণ করা হয় কিনা তা নিয়ন্ত্রণ করে
':=' অ্যাসাইনমেন্ট। পিছনের সামঞ্জস্যের জন্য ডিফল্ট মিথ্যা। সেট
অন্যান্য তৈরির সাথে সামঞ্জস্যের জন্য সত্য। মিথ্যা সেট করলে, '$$' হয়ে যায়
স্বাভাবিক মূল্যায়নের নিয়ম অনুযায়ী '$'।

MAKE_PRINT_VAR_ON_ERROR
কখন bmake একটি ত্রুটির কারণে বন্ধ হয়ে যায়, এটি তার নাম এবং এর মান প্রিন্ট করে
'.CURDIR' সেইসাথে নাম দেওয়া যেকোনো ভেরিয়েবলের মান
'MAKE_PRINT_VAR_ON_ERROR'.

.নতুন লাইন এই ভেরিয়েবলটিকে তার মান হিসাবে একটি নতুন লাইন অক্ষর বরাদ্দ করা হয়েছে। এই
ব্যবহার করে সম্প্রসারণের অনুমতি দেয় :@ পুনরাবৃত্তির মধ্যে একটি নতুন লাইন স্থাপন করতে সংশোধক
একটি স্থানের পরিবর্তে লুপের। উদাহরণস্বরূপ, এর মুদ্রণ
'MAKE_PRINT_VAR_ON_ERROR' হিসাবে করা যেতে পারে
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}।

.OBJDIR ডিরেক্টরির একটি পথ যেখানে লক্ষ্যগুলি তৈরি করা হয়। এর মান
চেষ্টা করে নির্ধারিত chdir(2) ক্রমানুসারে নিম্নলিখিত ডিরেক্টরিগুলিতে এবং
প্রথম ম্যাচ ব্যবহার করে:

1. ${MAKEOBJDIRPREFIX}${.CURDIR}

(শুধুমাত্র যদি 'MAKEOBJDIRPREFIX' পরিবেশে বা কমান্ডে সেট করা থাকে
লাইন।)

2. ${MAKEOBJDIR}

(শুধুমাত্র যদি 'MAKEOBJDIR' পরিবেশে বা কমান্ডে সেট করা থাকে
লাইন।)

3. ${.CURDIR}/obj.${মেশিন}

4. ${.CURDIR}/obj

5. /usr/obj/${.CURDIR}

6. ${.CURDIR}

পরিবর্তনশীল সম্প্রসারণ মান ব্যবহার করার আগে সঞ্চালিত হয়, তাই
অভিব্যক্তি যেমন
${.কুরদির:এস,^/ usr / src,/var/obj,}
ব্যবহার করা যেতে পারে. এটি 'MAKEOBJDIR' এর সাথে বিশেষভাবে কার্যকর।

'.OBJDIR'বিশেষ লক্ষ্যের মাধ্যমে মেকফাইলে পরিবর্তন করা যেতে পারে'.OBJDIR'.
সব ক্ষেত্রে, bmake ইচ্ছা chdir(2) নির্দিষ্ট ডিরেক্টরিতে যদি এটি বিদ্যমান থাকে,
এবং সেট'.OBJDIRকোনো টার্গেট এক্সিকিউট করার আগে সেই ডিরেক্টরিতে ' এবং 'PWD'।

.পার্সেদির বর্তমানের ডিরেক্টরির একটি পথ 'Makefile নামক' পার্স করা হচ্ছে।

.পার্সফাইল বর্তমানের মূল নাম 'Makefile নামক' পার্স করা হচ্ছে। এই পরিবর্তনশীল এবং
'.পার্সেদির' উভয় সেট করা হয় শুধুমাত্র যখন 'মেকফাইলস' পার্স করা হচ্ছে। যদি
আপনি তাদের বর্তমান মান বজায় রাখতে চান, ব্যবহার করে একটি পরিবর্তনশীল তাদের বরাদ্দ করুন
সম্প্রসারণ সহ অ্যাসাইনমেন্ট: (':=')।

.PATH একটি ভেরিয়েবল যে ডিরেক্টরির তালিকা প্রতিনিধিত্ব করে যে bmake অনুসন্ধান করবে
ফাইলের জন্য। টার্গেট ব্যবহার করে সার্চ লিস্ট আপডেট করতে হবে।.PATH'
পরিবর্তনশীলের পরিবর্তে।

বর্তমান ডিরেক্টরির PWD বিকল্প পথ। bmake সাধারণত সেট করে.CURDIR' প্রতি
দ্বারা প্রদত্ত আদর্শ পথ getcwd(3)। তবে পরিবেশ পরিবর্তনশীল হলে
'PWD' সেট করা হয়েছে এবং তারপরে বর্তমান ডিরেক্টরিতে একটি পথ দেয় bmake সেট
'.CURDIR' এর পরিবর্তে 'PWD' এর মান। এই আচরণ নিষ্ক্রিয় যদি
'MAKEOBJDIRPREFIX' সেট করা হয়েছে বা 'MAKEOBJDIR'-এ একটি পরিবর্তনশীল রূপান্তর রয়েছে।
'PWD' এর মান নির্ধারণ করা হয়েছে.OBJDIR' সমস্ত প্রোগ্রামের জন্য যা bmake
চালায়

.TARGETS কমান্ড লাইনে স্পষ্টভাবে উল্লেখ করা লক্ষ্যগুলির তালিকা, যদি থাকে।

VPATH কোলন-বিচ্ছিন্ন (“:”) ডিরেক্টরিগুলির তালিকা যা bmake ফাইল অনুসন্ধান করবে।
ভেরিয়েবলটি শুধুমাত্র পুরানো মেক প্রোগ্রামগুলির সাথে সামঞ্জস্যের জন্য সমর্থিত, ব্যবহার করুন
'.PATH' পরিবর্তে.

পরিবর্তনশীল সংশোধনকারীদের
পরিবর্তনশীল সম্প্রসারণ পরিবর্তনশীলের প্রতিটি শব্দ নির্বাচন বা পরিবর্তন করতে পরিবর্তন করা যেতে পারে (যেখানে a
"শব্দ" হোয়াইট-স্পেস অক্ষরের সীমাবদ্ধ ক্রম)। একটি ভেরিয়েবলের সাধারণ বিন্যাস
সম্প্রসারণ নিম্নরূপ:

${ভেরিয়েবল[:মোডিফায়ার[:...]]}

প্রতিটি সংশোধক একটি কোলন দিয়ে শুরু হয়, যা একটি ব্যাকস্ল্যাশ ('\') দিয়ে এড়িয়ে যেতে পারে।

সংশোধকগুলির একটি সেট একটি ভেরিয়েবলের মাধ্যমে নির্দিষ্ট করা যেতে পারে, নিম্নরূপ:

modifier_variable=modifier[:...]
${ভেরিয়েবল:${modifier_variable[:...]}

এই ক্ষেত্রে modifier_variable-এর প্রথম মডিফায়ারটি কোলন দিয়ে শুরু হয় না, যেহেতু
যেটি অবশ্যই রেফারেন্সিং ভেরিয়েবলে উপস্থিত হবে। এর মধ্যে যদি কোন মডিফায়ার থাকে
modifier_variable-এ একটি ডলার চিহ্ন ('$') থাকে, তাড়াতাড়ি এড়াতে এগুলিকে দ্বিগুণ করতে হবে
সম্প্রসারণ.

সমর্থিত সংশোধকগুলি হল:

:E ভেরিয়েবলের প্রতিটি শব্দকে তার প্রত্যয় দিয়ে প্রতিস্থাপন করে।

:H ভেরিয়েবলের প্রতিটি শব্দকে শেষ উপাদান ছাড়া সবকিছু দিয়ে প্রতিস্থাপন করে।

:Mপ্যাটার্ন
শুধুমাত্র সেই শব্দগুলি নির্বাচন করুন যা মেলে প্যাটার্ন. স্ট্যান্ডার্ড শেল ওয়াইল্ডকার্ড অক্ষর
('*', '?', এবং '[]') ব্যবহার করা যেতে পারে। ওয়াইল্ডকার্ড অক্ষর a দিয়ে পালিয়ে যেতে পারে
ব্যাকস্ল্যাশ ('\')। মানগুলি শব্দে বিভক্ত, মিলিত এবং
তারপর যোগদান, মত একটি গঠন
${VAR:M*}
আন্তঃশব্দ ব্যবধানকে স্বাভাবিক করবে, সমস্ত অগ্রণী এবং পিছনের স্থান মুছে ফেলবে, এবং
একাধিক পরপর স্পেসকে একক স্পেসে রূপান্তর করা হচ্ছে।

:Nপ্যাটার্ন
এটি 'এর অনুরূপ:M', কিন্তু মেলে না এমন সব শব্দ নির্বাচন করে প্যাটার্ন.

:O পরিবর্তনশীল প্রতিটি শব্দকে বর্ণানুক্রমিকভাবে সাজান। বিপরীত ক্রমে শব্দ সাজাতে ব্যবহার করুন
':ও:[-1..1]' সংশোধকগুলির সংমিশ্রণ।

: ষাঁড় পরিবর্তনশীল শব্দ র্যান্ডমাইজ করুন. আপনি প্রতিবার উল্লেখ করার সময় ফলাফল ভিন্ন হবে
পরিবর্তিত পরিবর্তনশীলে; অ্যাসাইনমেন্টটি সম্প্রসারণের সাথে ব্যবহার করুন (':=') এ ধরনের প্রতিরোধ করতে
আচরণ উদাহরণ স্বরূপ,

তালিকা = একটি নির্দিষ্ট সময়ের জন্য
র্যান্ডম_লিস্ট = ${লিস্ট:অক্স}
STATIC_RANDOM_LIST:= ${LIST:Ox}

সব:
@echo "${RANDOM_LIST}"
@echo "${RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
অনুরূপ আউটপুট উত্পাদন করতে পারে:

quattro due Tre uno
tre due quattro uno
কারণ quattro tre
কারণ quattro tre

:Q ভেরিয়েবলের প্রতিটি শেল মেটা-অক্ষর উদ্ধৃত করে, যাতে এটি নিরাপদে পাস করা যায়
এর পুনরাবৃত্তিমূলক আহ্বানের মাধ্যমে bmake.

:R ভেরিয়েবলের প্রতিটি শব্দকে তার প্রত্যয় ছাড়া সবকিছু দিয়ে প্রতিস্থাপন করে।

:gmtime
মান একটি বিন্যাস স্ট্রিং জন্য strftime(3), কারেন্ট ব্যবহার করে gmtime(3).

: হ্যাশ
মানের একটি 32 বিট হ্যাশ গণনা করুন এবং এটিকে হেক্স সংখ্যা হিসাবে এনকোড করুন।

:স্থানীয় সময়
মান একটি বিন্যাস স্ট্রিং জন্য strftime(3), কারেন্ট ব্যবহার করে স্থানীয় সময়(3).

: tA ভেরিয়েবলকে ব্যবহার করে পরম পাথে রূপান্তর করার চেষ্টা করুন বাস্তবপথ(3), যদি ব্যর্থ হয়,
মান অপরিবর্তিত।

:tl ভেরিয়েবলকে ছোট হাতের অক্ষরে রূপান্তর করে।

:tsc
পরিবর্তনশীল শব্দগুলি সাধারণত সম্প্রসারণের উপর একটি স্থান দ্বারা পৃথক করা হয়। এই সংশোধক
অক্ষরে বিভাজক সেট করে c। যদি c বাদ দেওয়া হয়, তারপর কোন বিভাজক ব্যবহার করা হয় না।
সাধারণ পালানো (অক্টাল নিউমেরিক কোড সহ), প্রত্যাশিতভাবে কাজ করে।

:তু পরিবর্তনশীলকে বড় হাতের অক্ষরে রূপান্তর করে।

:tW মানটিকে একটি একক শব্দ হিসাবে বিবেচনা করার কারণ (সম্ভবত এমবেড করা সাদা রয়েছে৷
স্থান)। আরো দেখুন ':[*]'.

:tw মানটিকে সাদা স্থান দ্বারা সীমাবদ্ধ করা শব্দের ক্রম হিসাবে বিবেচনা করা হয়। দেখা
এছাড়াও ':[@]'.

:S/old_string/নতুন_স্ট্রিং/[1gW]
এর প্রথম ঘটনা পরিবর্তন করুন old_string ভেরিয়েবলের মানের মধ্যে, এটি দিয়ে প্রতিস্থাপন করা
নতুন_স্ট্রিং. যদি প্যাটার্নের শেষ স্ল্যাশে একটি 'g' যুক্ত করা হয়, তাহলে সমস্ত ঘটনা
প্রতিটি শব্দ প্রতিস্থাপিত হয়। যদি প্যাটার্নের শেষ স্ল্যাশে একটি '1' যুক্ত করা হয়, শুধুমাত্র
প্রথম শব্দ প্রভাবিত হয়. যদি প্যাটার্নের শেষ স্ল্যাশে একটি 'W' যুক্ত করা হয়,
তারপর মানটিকে একটি একক শব্দ হিসাবে বিবেচনা করা হয় (সম্ভবত এমবেডেড সাদা স্থান রয়েছে)।
If old_string ক্যারেট ('^') দিয়ে শুরু হয়, old_string এর শুরুতে নোঙর করা হয়
প্রতিটি শব্দ. যদি old_string একটি ডলার চিহ্ন ('$') দিয়ে শেষ হয়, এটি শেষে নোঙ্গর করা হয়
প্রতিটি শব্দ. ভিতরে নতুন_স্ট্রিং, একটি ampersand ('&') দ্বারা প্রতিস্থাপিত হয় old_string (ছাড়া
যেকোনো '^' বা '$')। যেকোন অক্ষর-এর অংশগুলির জন্য একটি বিভেদক হিসাবে ব্যবহার করা যেতে পারে
মডিফায়ার স্ট্রিং অ্যাঙ্করিং, অ্যাম্পারস্যান্ড এবং ডিলিমিটার অক্ষরগুলি দিয়ে পালিয়ে যেতে পারে৷
একটি ব্যাকস্ল্যাশ ('\')।

পরিবর্তনশীল সম্প্রসারণ উভয়ের ভিতরে স্বাভাবিক ফ্যাশনে ঘটে old_string এবং নতুন_স্ট্রিং
একটি ব্যাকস্ল্যাশ একটি ডলারের সম্প্রসারণ রোধ করার জন্য ব্যবহৃত হয়
চিহ্ন ('$'), স্বাভাবিকের মতো আগের ডলারের চিহ্ন নয়।

:C/প্যাটার্ন/প্রতিস্থাপন/[1gW]
সার্জারির :C modifier ঠিক মত :S পুরানো এবং নতুন স্ট্রিং ছাড়া পরিবর্তনকারী,
সাধারণ স্ট্রিং হওয়ার পরিবর্তে, একটি বর্ধিত রেগুলার এক্সপ্রেশন (দেখুন regex(3))
স্ট্রিং প্যাটার্ন এবং একটি ed(1)-স্টাইল স্ট্রিং প্রতিস্থাপন. সাধারণত, প্রথম ঘটনা
প্যাটার্নের প্যাটার্ন মান প্রতিটি শব্দ সঙ্গে প্রতিস্থাপিত হয় প্রতিস্থাপন. দ্য
'1' পরিবর্তনকারীর কারণে প্রতিস্থাপনটি সর্বাধিক একটি শব্দে প্রয়োগ করা হয়; 'g' সংশোধক
অনুসন্ধান প্যাটার্নের যতগুলি দৃষ্টান্তে প্রতিস্থাপন প্রয়োগ করা হয় প্যাটার্ন as
শব্দ বা শব্দের মধ্যে এটি পাওয়া যায়; 'ডব্লিউ' সংশোধক মানটি ঘটায়
একটি একক শব্দ হিসাবে বিবেচনা করা হয় (সম্ভবত এমবেডেড সাদা স্থান রয়েছে)। উল্লেখ্য যে '1' এবং
'g' হল অর্থোগোনাল; সাবেক একাধিক শব্দ সম্ভাব্য কিনা তা নির্দিষ্ট করে
প্রভাবিত, পরবর্তীতে একাধিক প্রতিস্থাপন সম্ভাব্যভাবে প্রতিটির মধ্যে ঘটতে পারে কিনা
প্রভাবিত শব্দ।

জন্য :S সংশোধক, প্যাটার্ন এবং প্রতিস্থাপন পরিবর্তনশীল সম্প্রসারণ সাপেক্ষে হয়
রেগুলার এক্সপ্রেশন হিসেবে পার্স করার আগে।

:T ভেরিয়েবলের প্রতিটি শব্দকে তার শেষ উপাদান দিয়ে প্রতিস্থাপন করে।

:u সংলগ্ন ডুপ্লিকেট শব্দগুলি সরান (যেমন ইউনিক(1))।

:?true_string:মিথ্যা_স্ট্রিং
যদি পরিবর্তনশীল নাম (এর মান নয়), যখন .if শর্তসাপেক্ষ অভিব্যক্তি হিসাবে পার্স করা হয়,
সত্যে মূল্যায়ন করে, এর মান হিসাবে ফেরত দিন true_string, অন্যথায় ফেরত
মিথ্যা_স্ট্রিং. যেহেতু ভেরিয়েবল নামটি এক্সপ্রেশন হিসাবে ব্যবহৃত হয়, :? প্রথম হতে হবে
পরিবর্তনশীল নামের পরে সংশোধক - যা অবশ্যই সাধারণত থাকবে
পরিবর্তনশীল সম্প্রসারণ একটি সাধারণ ত্রুটি মত এক্সপ্রেশন ব্যবহার করার চেষ্টা করছে
${NUMBERS:M42:?match:no}
যেটি আসলে সংজ্ঞায়িত (সংখ্যা) পরীক্ষা করে, কোন শব্দ মেলে কিনা তা নির্ধারণ করতে আপনার প্রয়োজন "42"
এরকম কিছু ব্যবহার করুন:
${"${NUMBERS:M42}" !="":?match:no}।

:old_string=new_string
এটি AT&T সিস্টেম V UNIX শৈলী পরিবর্তনশীল প্রতিস্থাপন। এটা শেষ হতে হবে
সংশোধক নির্দিষ্ট. যদি old_string or নতুন_স্ট্রিং প্যাটার্ন ম্যাচিং ধারণ করবেন না
চরিত্র % তারপর ধরে নেওয়া হয় যে তারা প্রতিটি শব্দের শেষে নোঙ্গর করা হয়েছে, তাই শুধুমাত্র
প্রত্যয় বা সম্পূর্ণ শব্দ প্রতিস্থাপিত হতে পারে। অন্যথায় % এর সাবস্ট্রিং old_string
প্রতিস্থাপন করা নতুন_স্ট্রিং.

পরিবর্তনশীল সম্প্রসারণ উভয়ের ভিতরে স্বাভাবিক ফ্যাশনে ঘটে old_string এবং নতুন_স্ট্রিং
একটি ব্যাকস্ল্যাশ একটি ডলারের সম্প্রসারণ রোধ করার জন্য ব্যবহৃত হয়
চিহ্ন ('$'), স্বাভাবিকের মতো আগের ডলারের চিহ্ন নয়।

:@টেম্প@স্ট্রিং@
এটি OSF ডেভেলপমেন্ট এনভায়রনমেন্ট (ODE) থেকে লুপ সম্প্রসারণ প্রক্রিয়া।
অসদৃশ জন্য loops সম্প্রসারণ রেফারেন্স সময় ঘটে. বরাদ্দ করুন টেম্প প্রতিটি শব্দে
পরিবর্তনশীল এবং মূল্যায়ন স্ট্রিং. ODE কনভেনশন হল যে টেম্প শুরু করা উচিত এবং
একটি পিরিয়ড দিয়ে শেষ। উদাহরণ স্বরূপ.
${LINKS:@.LINK.@${LN} ${TARGET} ${.LINK.}@}

যাইহোক একটি একক অক্ষর পরিবর্তনশীল প্রায়ই আরো পঠনযোগ্য:
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}

:Unewval
যদি পরিবর্তনশীলটি অনির্ধারিত হয় newval মান হয়। যদি পরিবর্তনশীল সংজ্ঞায়িত করা হয়,
বিদ্যমান মান ফেরত দেওয়া হয়। এটি আরেকটি ODE মেক বৈশিষ্ট্য। এটা সেট করার জন্য সুবিধাজনক
উদাহরণস্বরূপ প্রতি-টার্গেট CFLAGS:
${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}}
ভেরিয়েবলটি অনির্ধারিত হলেই যদি একটি মান প্রয়োজন হয়, তাহলে ব্যবহার করুন:
${VAR:D:Uneval}

:Dnewval
যদি পরিবর্তনশীল সংজ্ঞায়িত করা হয় newval মান।

:L ভেরিয়েবলের নাম হল মান।

:P নোডের যে পাথের নাম ভ্যারিয়েবলের মতো একই আছে সেটি হল মান। যদি এমন না হয়
নোড বিদ্যমান বা এর পাথ নাল, তাহলে ভেরিয়েবলের নাম ব্যবহার করা হয়। জন্য আদেশ
এই মডিফায়ারটি কাজ করার জন্য, নাম (নোড) কমপক্ষে a এর rhs-এ উপস্থিত হওয়া আবশ্যক
নির্ভরতা

:!cmd কমান্ড!
চলমান আউটপুট cmd কমান্ড মান।

:শ ভেরিয়েবলটি খালি না হলে এটি একটি কমান্ড হিসাবে চালানো হয় এবং আউটপুটটি নতুন হয়ে যায়
মান।

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

দ্য '::AT&T সিস্টেম V UNIX শৈলীর সাথে মিথ্যা মিল এড়াতে সাহায্য করে := সংশোধক এবং
যেহেতু প্রতিস্থাপন সবসময় ঘটে ::= ফর্ম অস্পষ্টভাবে উপযুক্ত।

::?=Str
এর জন্য ::= কিন্তু শুধুমাত্র যদি ভেরিয়েবলের ইতিমধ্যে একটি মান না থাকে।

::+=Str
সংযোজন Str পরিবর্তনশীল

::!=cmd কমান্ড
এর আউটপুট বরাদ্দ করুন cmd কমান্ড পরিবর্তনশীল

:[পরিসর]
মান থেকে এক বা একাধিক শব্দ নির্বাচন করে বা এর সাথে সম্পর্কিত অন্যান্য ক্রিয়াকলাপ সম্পাদন করে
যেভাবে মান শব্দে বিভক্ত।

সাধারণত, একটি মানকে সাদা স্থান দ্বারা সীমাবদ্ধ করা শব্দের ক্রম হিসাবে বিবেচনা করা হয়। কিছু
সংশোধকরা এই আচরণকে দমন করে, যার ফলে একটি মানকে একক শব্দ হিসাবে গণ্য করা হয়
(সম্ভবত এমবেডেড সাদা স্থান রয়েছে)। একটি খালি মান, বা একটি মান যা গঠিত
সম্পূর্ণরূপে হোয়াইট-স্পেস, একটি একক শব্দ হিসাবে বিবেচিত হয়। এর উদ্দেশ্যে ':[]'
সংশোধক, শব্দগুলি ধনাত্মক পূর্ণসংখ্যা (যেখানে সূচক 1
প্রথম শব্দের প্রতিনিধিত্ব করে, এবং পিছনের দিকে ঋণাত্মক পূর্ণসংখ্যা ব্যবহার করে (যেখানে সূচক -1
শেষ শব্দ প্রতিনিধিত্ব করে)।

সার্জারির পরিসর পরিবর্তনশীল সম্প্রসারণ সাপেক্ষে, এবং প্রসারিত ফলাফল তারপর
নিম্নরূপ ব্যাখ্যা করা হয়েছে:

সূচক মান থেকে একটি একক শব্দ নির্বাচন করে।

শুরু..শেষ
থেকে সমস্ত শব্দ নির্বাচন করে শুরু থেকে শেষ, অন্তর্ভুক্ত. উদাহরণ স্বরূপ, ':[2..-1]' নির্বাচন করে
দ্বিতীয় শব্দ থেকে শেষ শব্দ পর্যন্ত সমস্ত শব্দ। যদি শুরু চেয়ে বড় শেষ,
তারপর শব্দগুলি বিপরীত ক্রমে আউটপুট হয়। উদাহরণ স্বরূপ, ':[-1..1]' সব নির্বাচন করে
শেষ থেকে প্রথম শব্দ.

* পরবর্তী সংশোধকদের মানটিকে একটি একক শব্দ হিসাবে বিবেচনা করে (সম্ভবত
এমবেডেড সাদা স্থান ধারণকারী)। বোর্নে "$*" এর প্রভাবের সাথে সাদৃশ্যপূর্ণ
খোল

0 মানে 'এর মতোই:[*]'.

@ পরবর্তী সংশোধকদের সীমাবদ্ধ শব্দের ক্রম হিসাবে মানটিকে বিবেচনা করার কারণ করে
সাদা স্থান দ্বারা। বোর্ন শেলে "$@" এর প্রভাবের সাথে সাদৃশ্যপূর্ণ।

# মানের শব্দের সংখ্যা প্রদান করে।

অন্তর্ভুক্ত বিবৃতি, শর্তাবলী এবং জন্য লুপস


মেকফাইল অন্তর্ভুক্তি, শর্তাধীন কাঠামো এবং লুপের জন্য সি প্রোগ্রামিং-এর স্মরণ করিয়ে দেয়
ভাষা প্রদান করা হয় bmake. এই ধরনের সমস্ত কাঠামোর সাথে শুরু হওয়া একটি লাইন দ্বারা চিহ্নিত করা হয়
একটি একক বিন্দু ('.') অক্ষর। ফাইল হয় সঙ্গে অন্তর্ভুক্ত করা হয় অন্তর্ভুক্তফাইল⟩ বা অন্তর্ভুক্ত
"ফাইল". কোণ বন্ধনী বা ডবল উদ্ধৃতিগুলির মধ্যে ভেরিয়েবলগুলি ফাইল তৈরি করতে প্রসারিত হয়৷
নাম যদি কোণ বন্ধনী ব্যবহার করা হয়, তাহলে অন্তর্ভুক্ত মেকফাইল সিস্টেমে থাকবে বলে আশা করা হচ্ছে
makefile ডিরেক্টরি। যদি ডাবল উদ্ধৃতি ব্যবহার করা হয়, মেকফাইলের ডিরেক্টরি সহ এবং যেকোনও
ব্যবহার করে নির্দিষ্ট ডিরেক্টরি -I সিস্টেম মেকফাইল ডিরেক্টরির আগে বিকল্পটি অনুসন্ধান করা হয়।
এর অন্যান্য সংস্করণের সাথে সামঞ্জস্যের জন্য bmake 'ফাইল অন্তর্ভুক্ত করুন...'ও গৃহীত হয়।

অন্তর্ভুক্ত বিবৃতি হিসাবে লেখা হয় .-অন্তর্ভুক্ত অথবা হিসাবে অন্তর্ভুক্ত তারপর ত্রুটি সনাক্তকরণ এবং/অথবা
খোলার অন্তর্ভুক্ত ফাইল উপেক্ষা করা হয়.

অন্তর্ভুক্ত বিবৃতি হিসাবে লেখা হয় অন্তর্ভুক্ত শুধুমাত্র ত্রুটি সনাক্তকরণ এবং/অথবা খোলা নয়
উপেক্ষা করা ফাইলগুলি অন্তর্ভুক্ত করুন, তবে অন্তর্ভুক্ত ফাইলের মধ্যে পুরানো নির্ভরতাগুলিকে উপেক্ষা করা হবে
মত .MAKE.DEPENDFILE.

শর্তসাপেক্ষ অভিব্যক্তিগুলিও একটি লাইনের প্রথম অক্ষর হিসাবে একটি একক বিন্দু দ্বারা পূর্বে থাকে।
সম্ভাব্য শর্তাবলী নিম্নরূপ:

.ত্রুটি বার্তা
তারপর মেকফাইলের নাম এবং লাইন নম্বর সহ বার্তাটি প্রিন্ট করা হয়
bmake প্রস্থান করবে।

.রপ্তানি পরিবর্তনশীল ...
নির্দিষ্ট গ্লোবাল ভেরিয়েবল রপ্তানি করুন. কোনো পরিবর্তনশীল তালিকা প্রদান করা না হলে, সমস্ত বিশ্বব্যাপী
অভ্যন্তরীণ ভেরিয়েবল ছাড়া রপ্তানি করা হয় (যেগুলি '.' দিয়ে শুরু হয়)। এটি হবে না
দ্বারা প্রভাবিত -X পতাকা, তাই সতর্কতার সাথে ব্যবহার করা উচিত। সাথে সামঞ্জস্যের জন্য
অন্যান্য bmake প্রোগ্রাম 'এক্সপোর্ট ভেরিয়েবল=মান'ও গৃহীত হয়।

একটি পরিবর্তনশীল নাম যোগ করা .বানান.রপ্তানি একটি পরিবর্তনশীল রপ্তানি করার সমতুল্য।

.export-env পরিবর্তনশীল ...
'.export'-এর মতোই, পরিবর্তনশীলটি যুক্ত করা ছাড়া .বানান.রপ্তানি.
এটি পরিবেশে একটি মান রপ্তানি করতে দেয় যা ব্যবহৃত থেকে আলাদা
by bmake অভ্যন্তরীণভাবে

.রপ্তানি-আক্ষরিক পরিবর্তনশীল ...
'.export-env'-এর মতই, মানের ভেরিয়েবলগুলিকে প্রসারিত করা হয় না।

.info বার্তা
মেকফাইলের নাম এবং লাইন নম্বর সহ বার্তাটি প্রিন্ট করা হয়।

.undef পরিবর্তনশীল
নির্দিষ্ট গ্লোবাল ভেরিয়েবল আন-সংজ্ঞায়িত করুন। শুধুমাত্র গ্লোবাল ভেরিয়েবল অ-সংজ্ঞায়িত হতে পারে।

.unexport পরিবর্তনশীল ...
'.export' এর বিপরীত। নির্দিষ্ট গ্লোবাল পরিবর্তনশীল থেকে সরানো হবে
.বানান.রপ্তানি. যদি কোন পরিবর্তনশীল তালিকা প্রদান করা না হয়, সমস্ত বিশ্ব অরপ্তানি হয়, এবং
.বানান.রপ্তানি মোছা হয়েছে।

.unexport-env
পূর্বে রপ্তানি করা সমস্ত বৈশ্বিক রপ্তানি মুক্ত করুন এবং উত্তরাধিকার সূত্রে প্রাপ্ত পরিবেশ পরিষ্কার করুন
মা - বাবা. এই অপারেশন মূল পরিবেশের একটি মেমরি লিক কারণ হবে, তাই
অল্প ব্যবহার করা উচিত। জন্য পরীক্ষা .MAKE.LEVEL 0 হচ্ছে, বোধগম্য হবে। এছাড়াও
মনে রাখবেন যে কোনও ভেরিয়েবল যা মূল পরিবেশে উদ্ভূত হওয়া উচিত
ইচ্ছা হলে স্পষ্টভাবে সংরক্ষিত। উদাহরণ স্বরূপ:

যদি ${.MAKE.LEVEL} == 0
পথ := ${PATH}
.unexport-env
.এক্সপোর্ট PATH
.শেষ যদি

শুধুমাত্র 'PATH' সমন্বিত একটি পরিবেশে পরিণত হবে, যা সর্বনিম্ন দরকারী
পরিবেশ আসলে '.MAKE.LEVEL'ও নতুন পরিবেশে ঠেলে দেওয়া হবে।

.সতর্কতা বার্তা
বার্তাটি ' দ্বারা উপসর্গযুক্তসতর্কতা:' মেকফাইলের নামের সাথে ছাপা হয়
এবং লাইন নম্বর।

যদি [!]অভিব্যক্তি [অপারেটর অভিব্যক্তি ...]
একটি অভিব্যক্তির মান পরীক্ষা করুন।

.ifdef [!]পরিবর্তনশীল [অপারেটর পরিবর্তনশীল ...]
একটি ভেরিয়েবলের মান পরীক্ষা করুন।

.ifndef [!]পরিবর্তনশীল [অপারেটর পরিবর্তনশীল ...]
একটি ভেরিয়েবলের মান পরীক্ষা করুন।

.ifmake [!]লক্ষ্য [অপারেটর লক্ষ্য ...]
লক্ষ্য নির্মাণ করা হচ্ছে পরীক্ষা.

.ifnmake [!] লক্ষ্য [অপারেটর লক্ষ্য ...]
লক্ষ্য নির্মাণ করা হচ্ছে পরীক্ষা.

অন্য শেষ শর্তসাপেক্ষের অর্থকে বিপরীত করুন।

এলিফ [!] অভিব্যক্তি [অপারেটর অভিব্যক্তি ...]
সংমিশ্রণ 'অন্য'এর পরে'যদি'.

.elifdef [!]পরিবর্তনশীল [অপারেটর পরিবর্তনশীল ...]
সংমিশ্রণ 'অন্য'এর পরে'.ifdef'.

.elifndef [!]পরিবর্তনশীল [অপারেটর পরিবর্তনশীল ...]
সংমিশ্রণ 'অন্য'এর পরে'.ifndef'.

.elifmake [!]লক্ষ্য [অপারেটর লক্ষ্য ...]
সংমিশ্রণ 'অন্য'এর পরে'.ifmake'.

.elifnmake [!]লক্ষ্য [অপারেটর লক্ষ্য ...]
সংমিশ্রণ 'অন্য'এর পরে'.ifnmake'.

.শেষ যদি শর্তাধীন শরীরের শেষ.

সার্জারির অপারেটর নিম্নলিখিত যে কোনো একটি হতে পারে:

|| যৌক্তিক বা.

&& যৌক্তিক এবং; "||" এর চেয়ে উচ্চতর অগ্রাধিকার।

সি এর মতো, bmake শুধুমাত্র একটি শর্তসাপেক্ষ মূল্যায়ন করবে যতদূর এটি নির্ধারণ করার জন্য প্রয়োজনীয়
মান বন্ধনী মূল্যায়নের ক্রম পরিবর্তন করতে ব্যবহার করা যেতে পারে। বুলিয়ান অপারেটর '!'
একটি সম্পূর্ণ শর্তসাপেক্ষকে যৌক্তিকভাবে অস্বীকার করতে ব্যবহার করা যেতে পারে। এটির চেয়ে উচ্চতর অগ্রাধিকার রয়েছে
'&&'.

মুল্য অভিব্যক্তি নিম্নলিখিত যে কোনো হতে পারে:

সংজ্ঞায়িত একটি যুক্তি হিসাবে একটি পরিবর্তনশীল নাম নেয় এবং ভেরিয়েবলটি সত্য হলে মূল্যায়ন করে
সংজ্ঞায়িত

করা একটি যুক্তি হিসাবে একটি টার্গেটের নাম নেয় এবং টার্গেট ছিল কিনা তা সত্যে মূল্যায়ন করে৷
অংশ হিসাবে নির্দিষ্ট করা হয়েছে bmakeএর কমান্ড লাইন বা ডিফল্ট লক্ষ্য হিসাবে ঘোষণা করা হয়েছিল
(হয় পরোক্ষভাবে বা স্পষ্টভাবে, দেখুন .মুখ্য) ধারণ করা লাইন আগে
শর্তাধীন

খালি সম্ভাব্য সংশোধক সহ একটি পরিবর্তনশীল নেয়, এবং সম্প্রসারণ হলে সত্যে মূল্যায়ন করে
ভেরিয়েবলের ফলে একটি খালি স্ট্রিং হবে।

বিদ্যমান একটি যুক্তি হিসাবে একটি ফাইলের নাম নেয় এবং ফাইলটি বিদ্যমান থাকলে সত্যে মূল্যায়ন করে৷ দ্য
ফাইলটি সিস্টেম অনুসন্ধানের পথে অনুসন্ধান করা হয় (দেখুন .PATH).

লক্ষ্য একটি যুক্তি হিসাবে একটি টার্গেটের নাম নেয় এবং টার্গেটটি হয়েছে কিনা তা সত্যে মূল্যায়ন করে৷
সংজ্ঞায়িত

কমান্ড
একটি যুক্তি হিসাবে একটি টার্গেটের নাম নেয় এবং টার্গেটটি হয়েছে কিনা তা সত্যে মূল্যায়ন করে৷
সংজ্ঞায়িত এবং এর সাথে যুক্ত কমান্ড রয়েছে।

অভিব্যক্তি এছাড়াও একটি পাটিগণিত বা স্ট্রিং তুলনা হতে পারে। পরিবর্তনশীল সম্প্রসারণ সঞ্চালিত হয়
তুলনার উভয় দিকে, যার পরে অবিচ্ছেদ্য মান তুলনা করা হয়। একটি মান হয়
হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করা হয় যদি এটি 0x এর আগে থাকে, অন্যথায় এটি দশমিক হয়; অক্টাল সংখ্যা
সমর্থিত হয় না স্ট্যান্ডার্ড সি রিলেশনাল অপারেটর সব সমর্থিত. যদি পরে
পরিবর্তনশীল প্রসারণ, হয় একটি 'এর বাম বা ডান দিকে=='বা'!=' অপারেটর একটি নয়
অবিচ্ছেদ্য মান, তারপর প্রসারিত ভেরিয়েবলের মধ্যে স্ট্রিং তুলনা করা হয়। যদি না
রিলেশনাল অপারেটর দেওয়া হয়, ধারণা করা হয় যে প্রসারিত পরিবর্তনশীল তুলনা করা হচ্ছে
স্ট্রিং তুলনার ক্ষেত্রে 0 বা একটি খালি স্ট্রিং এর বিপরীতে।

কখন bmake এই শর্তাধীন অভিব্যক্তিগুলির একটিকে মূল্যায়ন করছে, এবং এটি একটি (সাদা-
স্পেস বিভক্ত) শব্দ এটি চিনতে পারে না, হয় "মেক" বা "সংজ্ঞায়িত" অভিব্যক্তি
শর্তাধীন ফর্মের উপর নির্ভর করে এটিতে প্রয়োগ করা হয়। যদি রূপ হয়'.ifdef'
'.ifndef', বা'যদি' "সংজ্ঞায়িত" অভিব্যক্তি প্রয়োগ করা হয়। একইভাবে, যদি ফর্ম হয়
'.ifmake'বা'.ifnmake, দ্য' "বানান" অভিব্যক্তি প্রয়োগ করা হয়।

শর্তসাপেক্ষে মূল্যায়ন করলে মেকফাইলের পার্সিং আগের মতোই চলতে থাকে। যদি এটা
মিথ্যা মূল্যায়ন করে, নিম্নলিখিত লাইনগুলি বাদ দেওয়া হয়। উভয় ক্ষেত্রেই এটি একটি পর্যন্ত চলতে থাকে
'অন্য'বা'.শেষ যদি' পাওয়া.

ফর লুপগুলি সাধারণত ফাইলের তালিকায় নিয়মের সেট প্রয়োগ করতে ব্যবহৃত হয়। a এর বাক্য গঠন
লুপের জন্য হল:

জন্য পরিবর্তনশীল [পরিবর্তনশীল ...] in অভিব্যক্তি
⟨নিয়ম তৈরি করুন⟩
শেষের জন্য

জন্য পরে অভিব্যক্তি মূল্যায়ন করা হয়, এটি শব্দে বিভক্ত। প্রতিটি পুনরাবৃত্তির উপর
লুপ, একটি শব্দ নেওয়া হয় এবং প্রতিটিকে বরাদ্দ করা হয় পরিবর্তনশীল, ক্রমে, এবং এই ভেরিয়েবল হয়
মধ্যে প্রতিস্থাপিত নিয়ম-কানুন লুপের শরীরের ভিতরে। শব্দ সংখ্যা আবশ্যক
এমনকি বেরিয়ে আসা; অর্থাৎ, যদি তিনটি পুনরাবৃত্তি ভেরিয়েবল থাকে, তাহলে প্রদত্ত শব্দের সংখ্যা
তিনটির একাধিক হতে হবে।

মন্তব্য


মন্তব্যগুলি একটি হ্যাশ ('#') অক্ষর দিয়ে শুরু হয়, যে কোনো জায়গায় কিন্তু একটি শেল কমান্ড লাইনে, এবং
একটি অপরিবর্তিত নতুন লাইনের শেষ পর্যন্ত চালিয়ে যান।

বিশেষ উত্স (বৈশিষ্ট্য)


.EXEC টার্গেট কখনই পুরানো হয় না, তবে সর্বদা যেভাবেই হোক কমান্ডগুলি চালান।

উপেক্ষা করুন এই টার্গেটের সাথে যুক্ত কমান্ড থেকে কোনো ত্রুটি উপেক্ষা করুন, ঠিক যেন
তারা সব একটি ড্যাশ ('-') দ্বারা আগে ছিল.

.তৈরি এই লক্ষ্যের সমস্ত উত্সগুলিকে আপ টু ডেট হিসাবে চিহ্নিত করুন৷

.বানান এই লক্ষ্যের সাথে যুক্ত কমান্ডগুলি চালান এমনকি যদি -n or -t বিকল্প ছিল
নির্দিষ্ট করা সাধারণত পুনরাবৃত্তিমূলক চিহ্নিত করতে ব্যবহৃত হয় bmakes.

.মেটা টার্গেটের জন্য একটি মেটা ফাইল তৈরি করুন, যদিও এটি ফ্ল্যাগ হিসাবে চিহ্নিত করা হয় .ফোনি, .বানান, বা
.বিশেষ. সঙ্গে একযোগে ব্যবহার .বানান সবচেয়ে সম্ভাবনাময় কেস। "মেটা" এ
মোড, মেটা ফাইল অনুপস্থিত থাকলে লক্ষ্যটি পুরানো।

NOMETA লক্ষ্যের জন্য একটি মেটা ফাইল তৈরি করবেন না। মেটা ফাইলের জন্য তৈরি করা হয় না
.ফোনি, .বানান, বা .বিশেষ লক্ষ।

NOMETA_CMP
লক্ষ্যটি পুরানো কিনা তা সিদ্ধান্ত নেওয়ার সময় কমান্ডের পার্থক্য উপেক্ষা করুন। এই
দরকারী যদি কমান্ডে একটি মান থাকে যা সর্বদা পরিবর্তিত হয়। সংখ্যা হলে
কমান্ড পরিবর্তন, যদিও, লক্ষ্য এখনও পুরানো হবে. একই প্রভাব
ভেরিয়েবল ব্যবহার করে এমন যেকোনো কমান্ড লাইনে প্রযোজ্য .OODATE, যার জন্য ব্যবহার করা যেতে পারে
অন্যথায় প্রয়োজন বা কাঙ্ক্ষিত না হলেও সেই উদ্দেশ্য:

কিছু-এর জন্য-তুলনা-বাদ করুন:
@echo এই তুলনা করা হবে
@echo এটি ${.OODATE:M.NOMETA_CMP} হবে না
@echo এটিও তুলনা করা হবে

সার্জারির :M প্যাটার্ন অবাঞ্ছিত ভেরিয়েবলের কোনো সম্প্রসারণকে দমন করে।

.নোপথ দ্বারা নির্দিষ্ট ডিরেক্টরিতে লক্ষ্য অনুসন্ধান করবেন না .PATH.

.NOTMAIN সাধারণত bmake ডিফল্ট টার্গেট হিসাবে এটির মুখোমুখি হওয়া প্রথম লক্ষ্য নির্বাচন করে
কোন লক্ষ্য নির্দিষ্ট না হলে নির্মিত. এই উৎস থেকে এই লক্ষ্য বাধা
নির্বাচন করেছেন।

.ঐচ্ছিক
যদি একটি লক্ষ্য এই বৈশিষ্ট্য সঙ্গে চিহ্নিত করা হয় এবং bmake কিভাবে তৈরি করা যায় বুঝতে পারছি না
এটি, এটি এই সত্যটিকে উপেক্ষা করবে এবং অনুমান করবে যে ফাইলটির প্রয়োজন নেই বা ইতিমধ্যেই বিদ্যমান।

.ফোনি লক্ষ্য একটি প্রকৃত ফাইলের সাথে সঙ্গতিপূর্ণ নয়; এটা সবসময় বিবেচনা করা হয়
পুরানো, এবং এর সাথে তৈরি করা হবে না -t বিকল্প প্রত্যয়-রূপান্তর
নিয়ম প্রয়োগ করা হয় না .ফোনি লক্ষ।

.মূল্যবান
কখন bmake বাধাপ্রাপ্ত হয়, এটি সাধারণত আংশিকভাবে তৈরি লক্ষ্যগুলিকে সরিয়ে দেয়। এই
উৎস লক্ষ্য অপসারণ করা থেকে বাধা দেয়।

.পুনরাবৃত্তি
এর প্রতিশব্দ .বানান.

.নীরব এই টার্গেটের সাথে যুক্ত কোনো কমান্ড ইকো করবেন না, ঠিক যেন তারা
সবগুলোর আগে একটি অ্যাট সাইন ('@') ছিল।

.ব্যবহার করুন লক্ষ্যে পরিণত করুন bmakeএকটি ম্যাক্রোর সংস্করণ। যখন লক্ষ্য হিসাবে ব্যবহৃত হয় a
অন্য টার্গেটের জন্য উৎস, অন্য টার্গেট কমান্ড, উৎস এবং অর্জন করে
গুণাবলী (ব্যতীত .ব্যবহার করুন) উৎসের। যদি লক্ষ্যে ইতিমধ্যেই কমান্ড থাকে,
দ্য .ব্যবহার করুন টার্গেটের কমান্ড তাদের সাথে যুক্ত করা হয়।

.ব্যবহারে পূর্বে
ঠিক মত .ব্যবহার করুন, কিন্তু prepend .ব্যবহারে পূর্বে টার্গেট কমান্ড টার্গেট.

অপেক্ষা করুন If অপেক্ষা করুন একটি নির্ভরতা লাইনে প্রদর্শিত হয়, এর আগে যে উত্সগুলি তৈরি হয় তা আগে তৈরি করা হয়
সূত্র যে লাইন এটি সফল. যেহেতু ফাইলের উপর নির্ভরশীল নয়
ফাইলটি নিজে তৈরি না হওয়া পর্যন্ত তৈরি করা হয়, এটি নির্ভরশীল হওয়া বন্ধ করে দেয়
নির্ভরশীল গাছের অন্য শাখার জন্য প্রয়োজন না হলে নির্মিত। তাই দেওয়া হয়েছে:

x: a .WAIT খ
ইকো এক্স
a:
প্রতিধ্বনি a
b: b1
প্রতিধ্বনি খ
b1:
echo b1

আউটপুট সবসময় 'a', 'b1', 'b', 'x' হয়।
দ্বারা আরোপিত আদেশ অপেক্ষা করুন শুধুমাত্র সমান্তরাল তৈরীর জন্য প্রাসঙ্গিক.

বিশেষ লক্ষ্য


বিশেষ লক্ষ্যগুলি অন্যান্য লক্ষ্যগুলির সাথে অন্তর্ভুক্ত নাও হতে পারে, অর্থাৎ তাদের অবশ্যই একমাত্র লক্ষ্য হতে হবে
নির্দিষ্ট

.শুরু এই লক্ষ্যের সাথে সংযুক্ত যেকোনো কমান্ড লাইন অন্য কিছু হওয়ার আগে কার্যকর করা হয়
সম্পন্ন.

.ডিফল্ট
এই একটি সাজানোর .ব্যবহার করুন যে কোনো লক্ষ্যের জন্য নিয়ম (যেটি শুধুমাত্র একটি উৎস হিসেবে ব্যবহার করা হয়েছিল)
bmake তৈরি করার অন্য কোন উপায় বের করতে পারছি না। শুধুমাত্র শেল স্ক্রিপ্ট ব্যবহার করা হয়।
সার্জারির .IMPSRC উত্তরাধিকারসূত্রে পাওয়া লক্ষ্যের পরিবর্তনশীল .ডিফল্টএর কমান্ড সেট করা আছে
লক্ষ্যের নিজের নাম।

.শেষ এই টার্গেটের সাথে সংযুক্ত যেকোন কমান্ড লাইন অন্য সব কিছুর পরে কার্যকর করা হয়
সম্পন্ন.

.ত্রুটি এই টার্গেটের সাথে সংযুক্ত যেকোনো কমান্ড লাইন কার্যকর করা হয় যখন অন্য টার্গেট ব্যর্থ হয়।
সার্জারির .ERROR_TARGET ভেরিয়েবল ব্যর্থ লক্ষ্যে সেট করা হয়েছে। আরো দেখুন
MAKE_PRINT_VAR_ON_ERROR.

উপেক্ষা করুন প্রতিটি উত্স দিয়ে চিহ্নিত করুন উপেক্ষা করুন বৈশিষ্ট্য যদি কোন উৎস নির্দিষ্ট করা না থাকে,
এটি নির্দিষ্ট করার সমতুল্য -i বিকল্প।

বাধা
If bmake বিঘ্নিত হয়, এই লক্ষ্যের জন্য কমান্ড কার্যকর করা হবে।

.মুখ্য যদি কোন লক্ষ্য নির্দিষ্ট করা হয় না কখন bmake আহ্বান করা হয়, এই লক্ষ্য নির্মাণ করা হবে.

.মেকফ্ল্যাগস
এই লক্ষ্য পতাকা নির্দিষ্ট করার একটি উপায় প্রদান করে bmake যখন makefile ব্যবহার করা হয়।
পতাকা শেল থেকে টাইপ করা হয়, যদিও -f বিকল্প কোন প্রভাব হবে না.

.নোপথ প্রয়োগ করুন .নোপথ কোনো নির্দিষ্ট উৎসের বৈশিষ্ট্য।

.NOTPARALLEL
সমান্তরাল মোড অক্ষম করুন।

.NO_PARALLEL
এর প্রতিশব্দ .NOTPARALLEL, অন্যান্য pmake ভেরিয়েন্টের সাথে সামঞ্জস্যের জন্য।

.OBJDIR উৎস হল 'এর জন্য একটি নতুন মান.OBJDIR' যদি এটি বিদ্যমান থাকে, bmake ইচ্ছা chdir(2) এটি
এবং 'এর মান আপডেট করুন.OBJDIR'.

.ORDER নামযুক্ত লক্ষ্যগুলি ক্রমানুসারে তৈরি করা হয়। এই অর্ডারিং লক্ষ্য যোগ করে না
লক্ষ্য তালিকা তৈরি করা হবে. যেহেতু একটি লক্ষ্যের উপর নির্ভরশীলরা নির্মিত হয় না
যতক্ষণ না লক্ষ্য নিজেই তৈরি করা যায়, যদি না 'a' এর অন্য অংশ দ্বারা নির্মিত হয়
নির্ভরতা গ্রাফ, নিম্নলিখিত একটি নির্ভরতা লুপ:

অর্ডার: বা
বি। এ

দ্বারা আরোপিত আদেশ .ORDER শুধুমাত্র সমান্তরাল তৈরীর জন্য প্রাসঙ্গিক.

.PATH সোর্স হল ডাইরেক্টরি যেগুলো খুঁজে পাওয়া যায় না ফাইলের জন্য
বর্তমান ডিরেক্টরি। যদি কোনো উৎস নির্দিষ্ট করা না থাকে, কোনো পূর্বে উল্লেখিত
ডিরেক্টরি মুছে ফেলা হয়। উৎস যদি হয় বিশেষ ডটলাস্ট লক্ষ্য, তারপর
বর্তমান কাজ ডিরেক্টরি শেষ অনুসন্ধান করা হয়.

.PATH.প্রত্যয়
মত .PATH কিন্তু শুধুমাত্র একটি নির্দিষ্ট প্রত্যয় সহ ফাইলগুলিতে প্রযোজ্য। প্রত্যয় আবশ্যক
সঙ্গে পূর্বে ঘোষণা করা হয়েছে .Suffixes.

.ফোনি প্রয়োগ করুন .ফোনি কোনো নির্দিষ্ট উৎসের বৈশিষ্ট্য।

.মূল্যবান
প্রয়োগ করুন .মূল্যবান কোনো নির্দিষ্ট উৎসের বৈশিষ্ট্য। যদি কোন সূত্র না থাকে
উল্লেখিত, .মূল্যবান ফাইলের প্রতিটি টার্গেটে অ্যাট্রিবিউট প্রয়োগ করা হয়।

.শেল যে শেল সেট bmake কমান্ড চালানোর জন্য ব্যবহার করবে। সূত্র একটি সেট
ক্ষেত্র = মান বিদ্যমান জোড়া.

নাম এটি হল ন্যূনতম স্পেসিফিকেশন, যা বিল্টিনের একটি নির্বাচন করতে ব্যবহৃত হয়
শেল চশমা; sh, ksh, এবং csh.

পথ শেলের পথ নির্দিষ্ট করে।

hasErrCtl শেল ত্রুটিতে প্রস্থান সমর্থন করে কিনা তা নির্দেশ করে।

চেক ত্রুটি পরীক্ষা চালু করার কমান্ড।

উপেক্ষা করা ত্রুটি পরীক্ষা নিষ্ক্রিয় করার কমান্ড।

প্রতিধ্বনি কমান্ডের প্রতিধ্বনি চালু করার নির্দেশ কার্যকর করা হয়েছে।

শান্ত কমান্ডের প্রতিধ্বনি বন্ধ করার নির্দেশ কার্যকর করা হয়েছে।

ছাঁকনি ইস্যু করার পর আউটপুট ফিল্টার করতে হবে শান্ত আদেশ এটা সাধারণত
অনুরূপ শান্ত.

ত্রুটি পতাকা ত্রুটি পরীক্ষা সক্রিয় করতে শেল পাস করার পতাকা।

ইকো ফ্ল্যাগ কমান্ড প্রতিধ্বনি সক্রিয় করতে শেল পাস করার পতাকা।

নতুন লাইন শেল পাস করার জন্য আক্ষরিক স্ট্রিং যা একটি একক নতুন লাইনে পরিণত হয়
অক্ষর যখন কোনো উদ্ধৃতি অক্ষরের বাইরে ব্যবহার করা হয়।
উদাহরণ:

.শেল: name=ksh পথ=/bin/ksh hasErrCtl=true \
check="set -e" ignore="set +e" \
echo="set -v" quiet="set +v" filter="set +v" \
echoFlag=v errFlag=e newline="'\n'"

.নীরব প্রয়োগ করুন .নীরব কোনো নির্দিষ্ট উৎসের বৈশিষ্ট্য। যদি কোন উৎস নির্দিষ্ট করা না থাকে,
দ্য .নীরব বৈশিষ্ট্য ফাইলের প্রতিটি কমান্ড প্রয়োগ করা হয়.

.স্টেল এই টার্গেট চালানো হয় যখন একটি নির্ভরশীলতা ফাইলে বাসি এন্ট্রি থাকে .ALLSRC
সেই নির্ভরতা ফাইলের নামে সেট করুন।

.Suffixes
প্রতিটি উৎস একটি প্রত্যয় নির্দিষ্ট করে bmake. যদি কোনো উৎস নির্দিষ্ট করা না থাকে, যে কোনো
পূর্বে নির্দিষ্ট প্রত্যয় মুছে ফেলা হয়. এটি প্রত্যয় তৈরির অনুমতি দেয়-
রূপান্তরের নিয়ম।

উদাহরণ:

.প্রত্যয়: .ও
.co:
cc -o ${.TARGET} -c ${.IMPSRC}

পরিবেশ


bmake নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে, যদি সেগুলি বিদ্যমান থাকে: MACHINE, MACHINE_ARCH,
MACHINE_MULTIARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, PWD, এবং
টিএমপিডিআইআর।

MAKEOBJDIRPREFIX এবং MAKEOBJDIR শুধুমাত্র পরিবেশে বা কমান্ড লাইনে সেট করা যেতে পারে
bmake এবং মেকফাইল ভেরিয়েবল হিসাবে নয়; এর বর্ণনা দেখুন.OBJDIR' আরো বিস্তারিত জানার জন্য.

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


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

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

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

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।