سؤال

لديّ برنامج كبير إلى حد ما مكتوب في C. إنه يمتد على العديد من الملفات ، ولديه القليل من إعادة التجهيز من أجل محاولة تعويض مشكلات النظام الأساسي. على وجه التحديد ، لدي ملفات رأس لمختلف أنظمة ، والبنية ، والمترجمين التي تحدد وحدات الماكرو التي تستخدمها للتعامل مع الأشياء. كمثال ، -v يطبع العلم معلومات الإصدار ، بما في ذلك اسم المترجم الذي صممه ، ونظام التشغيل والهندسة المعمارية التي تم بناؤها. كمثال على سبب أهمية ذلك ، يمكن للبرنامج إنشاء ملف رمز C ، وإذا أردت ، قم بتجميعه - وهي مهمة يقوم بها ببساطة استدعاء نظام إلى أي برنامج مترجم هو - هي بنيت مع.

كما أن لديها دعمًا لمكتبة GNU Readline (أو مكتبة BSD Editline - نفس الشيء) إذا تم العثور عليها على نظامك ، بالإضافة إلى ما يعادل كل ميزات القراءة اللطيفة التي هي ANSI PURE إذا لم يكن لديك.

خلاصة القول هي أنه لا يمكنني إخراج أي من البتات المعتمدة على النظام الأساسي ، حيث أن العديد من الوظائف تعتمد بشكل كبير على ما لديك/برنامج التحويل البرناميل. أريد أيضًا توفير وظائف جيدة لأولئك الذين لديهم. وأريد أن يقوم الناس بتنزيله وتثبيته بمعايير ./configure, make و make install واجهه المستخدم.

حاليا أنا أستخدم برنامج نصي Shell المصنوع يدويًا لـ configure هذا يخلق makefile من نقطة الصفر ، ويحدد ملفات الرأس التي يجب تضمينها بناءً على نظام التشغيل/العمارة/البرمجي. أرغب في اتباع نهج أكثر كفاءة ، وأرغب في استخدام نظام بناء أكثر قياسيًا باستخدام GNU Autotools. وبهذه الطريقة أعلم أن ما أقوم به سيعمل على كمبيوتر شخص آخر دون الحاجة إلى التجول في اختباره على أجهزة الكمبيوتر الخاصة بهم.

سؤالي ، لأولئك منكم الذين تراجعوا عن كل ذلك (شكرًا لك!) ، هو: 1) كيف يمكنني التبديل من نظام بناء البيرة إلى GNU Autotools؟ 2) ما هي البرامج التعليمية الجيدة للبدء في GNU Autotools؟ 3) كيف يمكنني جعل هذه عملية غير مؤلمة نسبيا؟

هل كانت مفيدة؟

المحلول

أول شيء ، يمكنك الجري التأكد الذاتي في دليل الجذر للمشروع. سوف يقوم بمسح شجرة المشروع وتوليد Configure.scan, ، أثناء محاولة اكتشاف الميزات غير المحمولة. ثم تقوم بإعادة تسميته إلى Config.ac, ، قم بتحريره وفقًا لذلك واكتب makefile.am الملفات.

أقترح عليك البحث عن هذه العملية (خاصة التأكد الذاتي) في دليل GNU Autotools للحصول على التفاصيل. سوف يقلل من جهودك ، ولكن على الأقل لن تبدأ من الصفر مع إنشاء تلك الملفات.

نصائح أخرى

هذا الرابط هو ما أتجه إليه بعد قراءة هذا المنشور. أجاب على أسئلتي حول كيفية إنشاء ملف ./Configure.

نظام بناء GNU

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top