جعل - قيادة لينكس - قيادة يونيكس

جعل - جنو يجعل فائدة للحفاظ على مجموعات من البرامج

ملخص

make [ -f makefile ] [option] ... target ...

تحذير

هذه الصفحة هي مقتطف من وثائق جنو. يتم تحديثه فقط من حين لآخر لأن مشروع جنو لا يستخدم nroff. للحصول على وثائق كاملة وحديثة ، ارجع إلى ملف المعلومات make.info الذي يصنع من ملف المصدر في Texinfo make.texinfo .

وصف

الغرض من الأداة المساعدة هو تحديد الأجزاء المطلوبة من البرنامج الكبير تلقائيًا وإعادة إصدار الأوامر لإعادة تجميعها. يصف الدليل تنفيذ غنو للتنفيذ ، الذي كتبه ريتشارد ستولمن ورولاند ماكغراث. تعرض الأمثلة الخاصة بنا برامج C لأنها الأكثر شيوعًا ، ولكن يمكنك استخدامها مع أي لغة برمجة يمكن تشغيل مترجمها باستخدام أمر shell. في الواقع ، لا يقتصر الأمر على البرامج. يمكنك استخدامه لوصف أي مهمة حيث يجب تحديث بعض الملفات تلقائيًا من الآخرين عندما يتغير الآخرون.

للتحضير لاستخدام الاستخدام ، يجب أن تكتب ملفًا باسم makefile يصف العلاقات بين الملفات الموجودة في البرنامج ، وتذكر الأوامر الخاصة بتحديث كل ملف. في البرنامج ، عادة ما يتم تحديث الملف القابل للتنفيذ من ملفات الكائن ، والتي بدورها تتم عن طريق تجميع الملفات المصدر.

بمجرد وجود ملف makefile مناسب ، في كل مرة تقوم فيها بتغيير بعض ملفات المصدر ، فهذا أمر shell بسيط:

يصنع

يكفي لأداء جميع recompilations اللازمة. يستخدم برنامج make قاعدة بيانات makefile وأوقات التعديل الأخيرة للملفات لتحديد أي من الملفات تحتاج إلى تحديث. لكل من هذه الملفات ، فإنه يصدر الأوامر المسجلة في قاعدة البيانات.

تنفيذ أوامر في makefile لتحديث واحد أو أكثر من أسماء الأهداف ، حيث يكون الاسم عادةً برنامجًا. إذا لم يكن الخيار -f موجودًا ، فقم بإجراء البحث عن makefiles GNUmakefile و makefile و Makefile ، بهذا الترتيب.

عادة يجب عليك استدعاء makefile الخاص بك إما makefile أو Makefile . (نوصي Makefile لأنه يظهر بشكل بارز بالقرب من بداية قائمة الدليل ، بالقرب من الملفات الهامة الأخرى مثل README .) الاسم الأول محدد ، GNUmakefile ، غير مستحسن لمعظم makefiles. يجب عليك استخدام هذا الاسم إذا كان لديك makefile خاص بجهاز GNU ، ولن يتم فهمه من خلال إصدارات أخرى. إذا كان makefile هو `- '، تتم قراءة الإدخال القياسي.

جعل التحديثات هدفًا إذا كان يعتمد على ملفات المتطلبات الرئيسية التي تم تعديلها منذ آخر تعديل للهدف ، أو إذا كان الهدف غير موجود.

خيارات

-m

يتم تجاهل هذه الخيارات للتوافق مع إصدارات أخرى من جعل .

-C دير

التغيير إلى dir dir قبل قراءة makefiles أو القيام بأي شيء آخر. إذا تم تحديد خيارات متعددة -C ، فسيتم تفسير كل منها نسبة إلى الخيار السابق: -C / -C etc أي ما يعادل -C / etc. يستخدم هذا عادة مع الدعوات المتكررة العودية.

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

-e

إعطاء المتغيرات المأخوذة من البيئة الأسبقية على المتغيرات من makefiles.

الملف -f

استخدم الملف في makefile.

-أنا

تجاهل كل الأخطاء في الأوامر المنفذة لإعادة تشكيل الملفات.

من أنا

يحدد الدليل dir للبحث عن makefiles المتضمنة. إذا تم استخدام عدة خيارات -I لتحديد عدة أدلة ، يتم البحث في الدلائل بالترتيب المحدد. على عكس الحجج التي ترفع إلى أعلام أخرى ، قد تأتي الأدلة المعطاة بأعلام -I مباشرة بعد العلم: - يُسمح بالدير ، بالإضافة إلى -I dir. يُسمح باستخدام هذا النحو للتوافق مع علامة -I الخاصة ببرمجية C preprocessor.

وظائف -j

يحدد عدد الوظائف (الأوامر) ليتم تشغيلها في وقت واحد. إذا كان هناك أكثر من خيار -j واحد ، يكون آخرها فعالاً. إذا تم إعطاء الخيار -j بدون وسيطة ، فلن يقتصر الإجراء على تحديد عدد الوظائف التي يمكن تشغيلها في وقت واحد.

متابعة أكبر قدر ممكن بعد خطأ. في حين أن الهدف الذي فشل ، وتلك التي تعتمد عليه ، لا يمكن تجديده ، يمكن الاعتماد على الاعتمادات الأخرى لهذه الأهداف بنفس الطريقة.

-l

-l الحمل

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

-n

اطبع الأوامر التي سيتم تنفيذها ، لكن لا تنفذها.

ملف -o

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

-p

طباعة قاعدة البيانات (القواعد وقيم المتغير) التي تنتج عن قراءة makefiles؛ ثم تنفيذ كالمعتاد أو كما هو محدد خلاف ذلك. يقوم هذا أيضًا بطباعة معلومات الإصدار التي تم تقديمها بواسطة مفتاح v- (انظر أدناه). لطباعة قاعدة البيانات دون محاولة إعادة إنشاء أي ملفات ، استخدم make -p -f / dev / null.

-q

`` وضع سؤال ''. لا تقم بتشغيل أي أوامر ، أو طباعة أي شيء ؛ فقط إرجاع حالة خروج صفر إذا كانت الأهداف المحددة محدثة بالفعل ، غير صفرية.

-r

القضاء على استخدام القواعد الضمنية المضمنة. امسح أيضًا القائمة الافتراضية لللاحقات لقواعد اللاحقة.

-s

عملية صامتة لا تقم بطباعة الأوامر أثناء تنفيذها.

-S

قم بإلغاء تأثير الخيار -k . هذا غير ضروري أبداً باستثناء في عملية متكررة حيث قد يتم توارث -k من المستوى الأعلى عبر MAKEFLAGS أو إذا قمت بتعيين -k في MAKEFLAGS في البيئة الخاصة بك.

-t

المس الملفات (ضع علامة عليها حتى الآن دون تغييرها بالفعل) بدلاً من تشغيل أوامرها. يستخدم هذا للتظاهر بأن الأوامر قد تمت ، من أجل خداع استدعاءات المستقبل.

-الخامس

اطبع إصدار برنامج make plus بالإضافة إلى حقوق النشر وقائمة بأسماء المؤلفين وإشعار بعدم وجود ضمان.

-w

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

ملف -W

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