ইউনিটসের একটি বিবর্তনীয় সমস্যা সমাধানের জন্য অটোকনফ এবং অটোমাকে সেট করা হয়েছিল।
ইউনিক্স বিভিন্ন দিক থেকে বিবর্তিত হওয়ার সাথে সাথে, বিকাশকারীরা যেগুলি পোর্টেবল কোড চেয়েছিল তারা এই জাতীয় কোড লিখতে ঝোঁক:
#if RUNNING_ON_BSD
Set things up in the BSD way
#if RUNNING_ON_SYSTEMV
Set things up in the SystemV way
#endif
যেহেতু ইউনিক্সকে বিভিন্ন বাস্তবায়নের (BSD, SystemV, অনেক বিক্রেতার কাঁটাচামচ, এবং পরবর্তী সময়ে লিনাক্স এবং অন্যান্য ইউনিক্সের মতো সিস্টেম) স্থাপন করা হয়েছিল, এটি বিকাশকারীদের পক্ষে গুরুত্বপূর্ণ হয়ে ওঠে যেগুলি পোর্টেবল কোডটি কোড লিখতে চেয়েছিল যা অপারেটিং সিস্টেমের কোনও নির্দিষ্ট ব্র্যান্ডের উপর নির্ভর করে না write তবে অপারেটিং সিস্টেম দ্বারা প্রকাশিত বৈশিষ্ট্যগুলিতে। এটি গুরুত্বপূর্ণ কারণ একটি ইউনিক্স সংস্করণ একটি নতুন বৈশিষ্ট্য প্রবর্তন করবে, উদাহরণস্বরূপ "প্রেরণ" সিস্টেম কল, এবং পরে অন্যান্য অপারেটিং সিস্টেমগুলি এটি গ্রহণ করবে। ব্র্যান্ড এবং সংস্করণগুলির জন্য যাচাই করা কোডের একটি স্প্যাগেটি না রেখে, বিকাশকারীরা বৈশিষ্ট্য দ্বারা অনুসন্ধান শুরু করেছিলেন, তাই কোডটি হয়ে উঠেছে:
#if HAVE_SEND
Use Send here
#else
Use something else
#endif
একটি কনফিগার্ড ফাইল সম্পাদনা করতে 90 এর পয়েন্ট ডেভলপারদের মধ্যে সোর্স কোডটি সংকলন করার জন্য বেশিরভাগ ফাইলগুলি পুনরায় পড়ুন এবং সিস্টেমটিতে সঠিক বৈশিষ্ট্য উপস্থিত রয়েছে বা পরীক্ষিত প্রতিটি অপারেটিং সিস্টেমের কনফিগারেশনের জন্য স্ট্যান্ডার্ড কনফিগারেশন ফাইলগুলি পাঠান।
এই প্রক্রিয়াটি উভয়ই জটিল এবং ত্রুটির প্রবণ ছিল এবং এভাবেই অটোকনফ হয়ে উঠল। আপনার অটোকনফকে বিশেষ ম্যাক্রোগুলির সাহায্যে শেল কমান্ড দ্বারা গঠিত একটি ভাষা হিসাবে ভাবতে হবে যা ক্রিয়াকলটির জন্য অপারেটিং সিস্টেমটিকে তদন্তকারী একটি সরঞ্জাম দিয়ে কনফিগারার মানব সম্পাদনা প্রক্রিয়া প্রতিস্থাপন করতে সক্ষম হয়েছিল।
আপনি সাধারণত কনফিগার ফাইল ফাইলটিতে আপনার প্রোবিং কোডটি লিখতেন এবং তারপরে অটোকনফ কমান্ডটি চালান যা আপনি ব্যবহার করেছেন এমন এক্সিকিউটেবল কনফিগার কমান্ডের সাথে এই ফাইলটি সংকলন করবে।
সুতরাং আপনি যখন চালনা করেন ./configure && make
আপনি আপনার সিস্টেমে উপলব্ধ বৈশিষ্ট্যগুলির জন্য অনুসন্ধান করছেন এবং তারপরে সনাক্ত হওয়া কনফিগারেশনটি দিয়ে এক্সিকিউটেবল নির্মাণ করছেন।
যখন ওপেন সোর্স প্রকল্পগুলি সোর্স কোড নিয়ন্ত্রণ সিস্টেমগুলি ব্যবহার করা শুরু করেছিল, তখন এটি কনফিগার.এ্যাক ফাইলটিতে যাচাই করা বুদ্ধিমান হয়েছিল, তবে সংকলনের (কনফিগার) ফলাফল নয়। অটোজেন.শ কেবলমাত্র একটি ছোট স্ক্রিপ্ট যা আপনার জন্য সঠিক কমান্ড যুক্তি সহ অটোকনফ সংকলককে অনুরোধ করে।
-
অটোমেক সম্প্রদায়তে বিদ্যমান প্রচলিত পদ্ধতির বাইরেও বেড়েছে। জিএনইউ প্রকল্পটি মেকফাইলগুলির জন্য নিয়মিত লক্ষ্যমাত্রার একটি সেটকে মানায়িত করেছে:
make all
প্রকল্প তৈরি করবে
make clean
প্রকল্প থেকে সমস্ত সংকলিত ফাইল সরানো হবে
make install
সফ্টওয়্যার ইনস্টল করা হবে
- ভালো জিনিস
make dist
এবং make distcheck
বিতরণের জন্য উৎস প্রস্তুত এবং যাচাই করুন যে ফলাফলের সম্পূর্ণ সোর্স কোড প্যাকেজ ছিল হবে
- এবং তাই ...
বিল্ডিং কমপ্লায়েন্ট মেকফিলগুলি বোঝা হয়ে ওঠে কারণ প্রচুর বয়লারপ্লেট ছিল যা বারবার পুনরাবৃত্তি হয়েছিল। সুতরাং অটোমেক হ'ল একটি নতুন সংকলক যা অটোকনফের সাথে সংহত হয়েছিল এবং "উত্স" মেকফিলের (মেকফিল.ম নামে পরিচিত) প্রক্রিয়াজাত করে মেকফাইলে যা পরে অটোকনকে খাওয়ানো যেতে পারে।
অটোমেক / অটোকনফ সরঞ্জামচইন আসলে বেশ কয়েকটি অন্যান্য সহায়ক সরঞ্জাম ব্যবহার করে এবং সেগুলি অন্যান্য নির্দিষ্ট কাজের জন্য অন্যান্য উপাদানগুলির দ্বারা বাড়ানো হয়। ক্রম হিসাবে এই কমান্ডগুলি চালনার জটিলতা বাড়ার সাথে সাথে একটি প্রস্তুত-চালিত স্ক্রিপ্টের প্রয়োজনীয়তার জন্ম হয় এবং এখান থেকেই অটোজেন.শ এসেছে from
যতদূর আমি জানি, জিনোম এমন প্রকল্প ছিল যা এই সহায়ক সহায়ক স্ক্রিপ্ট অটোজেন.শের ব্যবহারের প্রবর্তন করেছিল