আপনার সম্ভবত এটি করা উচিত নয়; আপনি কীভাবে মেক কাজ করেন তার প্রাথমিক প্যাটার্নটি ভঙ্গ করছেন। তবে এটি এখানে:
action:
@echo action $(filter-out $@,$(MAKECMDGOALS))
%: # thanks to chakrit
@: # thanks to William Pursell
সম্পাদনা:
প্রথম আদেশটি ব্যাখ্যা করতে,
$(MAKECMDGOALS)
কমান্ড লাইনে বানানো "লক্ষ্যগুলি" এর তালিকাটি হল, যেমন "ক্রিয়া মান 1 মান 2"।
$@
এই ক্ষেত্রে "ক্রিয়া" এর ক্ষেত্রে নিয়মের টার্গেটের নামের জন্য একটি স্বয়ংক্রিয় পরিবর্তনশীল ।
filter-out
একটি ফাংশন যা তালিকা থেকে কিছু উপাদান সরিয়ে দেয়। সুতরাং $(filter-out bar, foo bar baz)
রিটার্ন foo baz
(এটি আরও সূক্ষ্ম হতে পারে, তবে আমাদের এখানে সূক্ষ্মতার প্রয়োজন নেই)।
এগুলি একসাথে রাখুন এবং $(filter-out $@,$(MAKECMDGOALS))
"অ্যাকশন" ব্যতীত কমান্ড লাইনে নির্দিষ্ট করা লক্ষ্যগুলির তালিকা প্রদান করে, যা "মান 1 মান 2" হতে পারে।