السلام عليكم ورحمة الله وبركاته ،،
لقد قرأت كثيراً عن الأمر أو البرنامج - لا أدري ما هو بالتحديد - المدعو (Make) ،، فما الغرض من هذا الأمر ؟ هل له علاقة بكمبايلر لغة السي ؟؟
أرجو التوضيح قدر الإمكان ،،،
السلام عليكم ورحمة الله وبركاته ،،
لقد قرأت كثيراً عن الأمر أو البرنامج - لا أدري ما هو بالتحديد - المدعو (Make) ،، فما الغرض من هذا الأمر ؟ هل له علاقة بكمبايلر لغة السي ؟؟
أرجو التوضيح قدر الإمكان ،،،

قال أحد الحكماء المسلمين:
" العلم ثلاثة أشبار ، من دخل الشبر الأول تكبر ، و من دخل الشبر الثاني تواضع ، و من دخل الشبر الثالث علم أنه لايعرف شيئ !! "
الmake هى اداء لبناء البرنامج من المصدر
اثناء تطوير اليونكس بداءت تظهر عيوب البناء اليدوى بانها مرهقة وتظهر بها عيوب مزعجة وبدائوا باستخدام الاسكربتات ولكنها ايضاء لم تكن تفى بالغرض لذا قاموا بصناعة اداء make
اداء make تقوم باتمتة عملية البناء باوامر تقوم باعدادها وبها خصائص تعتبر اكثر ذكاء مثل عدم اعادة مصدر الاكواد (الموديلز) التى لم يطراء تغيير عليها .
الاوامر الداخلية شبية باوامر gcc
# --- targets
all: monte_pi_sprng
monte_pi_sprng: $(OBJECTS)
$(CC) -o monte_pi_sprng $(OBJECTS) $(LIBS)
monte_pi_sprng.o: /usr/local/lib/sprng/include/sprng.h /usr/local/lib/pgplot/cpgplot.h monte_pi_sprng.c
$(CC) $(CFLAGS) -c monte_pi_sprng.c
plot.o: /usr/local/lib/pgplot/cpgplot.h plot.c
$(CC) $(CFLAGS) -c plot.c
# --- remove binary and executable files
clean:
rm -f monte_pi_sprng $(OBJECTS)بما انك مبرمج فساحاول ان اشرحة . كل كلمة قبل علامة ال : هى هدف ولتحقيق يجب تنفيذ ما بعد الاشارة (وهى اسم اخر) ولتنفيذة يذهب الى هذا الاسم الى ان يصل الى اسم مشبع متطلباتة ويقوم بتنفيذ اوامر بنائة مثل
$(CC) $(CFLAGS) -c plot.c
الذى يقوم باستبدال المتغيرات بمحتواها المعرف باعلى الكود ويعطى امر بناء الملف plot.c مع الاحتفاظ بالاوبجكت فايل والخ .
عموما حاليا معظم المشاريع تستعمل autotools الاذكى حيث تقوم بالتحقق من نسخة المترجم والمكتبات ونسخها كما انها اسهل واقوى فى الاعداد ولها امكانيات افضل وتتمتع بالمحمولية
و من الجدير بالذكر أن هناك أدوات تشبه Make تستخدم مع لغات مثل الجافا, أمثلة هذه الأدوات ant و maven و إن كانت الأخيره تقوم بعدة أشياء من بينها بناء البرامج (build)
فهمت الآن ،،:cool:
أشكركم على التوضيح :)

قال أحد الحكماء المسلمين:
" العلم ثلاثة أشبار ، من دخل الشبر الأول تكبر ، و من دخل الشبر الثاني تواضع ، و من دخل الشبر الثالث علم أنه لايعرف شيئ !! "
هناك ادوات تقوم بصناعة Makefile تلقائيا من ملفات المشروع
ابرزها: gnu autotools
http://en.wikipedia.org/wiki/GNU_build_system
http://www.lrde.epita.fr/~adl/dl/autotools.pdf
هناك ايضا cmake
أشكرك على الإفادة القيمة أخي الكريم.

قال أحد الحكماء المسلمين:
" العلم ثلاثة أشبار ، من دخل الشبر الأول تكبر ، و من دخل الشبر الثاني تواضع ، و من دخل الشبر الثالث علم أنه لايعرف شيئ !! "