جعل المصدر مع هدفين
-
09-06-2019 - |
المحلول
لم أستخدم Makepp شخصيًا مطلقًا، ولكن نظرًا لأنه بديل مباشر لـ GNU Make، فمن المفترض أن تكون قادرًا على القيام بشيء مثل:
build: foo.h foo.cpp
g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo
foo.h foo.cpp: foo.lzz
lzz foo.lzz
لست متأكدًا أيضًا من استدعاء lzz هناك، ولكن هذا من شأنه أن يساعد.يمكنك قراءة المزيد عن هذا في http://theory.uwinnipeg.ca/gnu/make/make_37.html.
نصائح أخرى
لز مذهلة!هذا فقط ما كنت أبحث عنه http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09
في الواقع، كل ما تحتاجه هو الاعتماد (عادةً) على foo.o في قاعدة الارتباط الخاصة بك، وقاعدة النمط للاتصال بـ lzz:
%.cpp %.h: %.lzz
lzz $(input)
والباقي سوف يقع في مكانه تلقائيا.عند تجميع أي مصدر يتضمن foo.h، أو ربط foo.o بمكتبة أو برنامج، سيتم استدعاء lzz تلقائيًا أولاً.
سوف يتعرف Makepp أيضًا على ما إذا كان الطابع الزمني قد تغير فقط وليس محتوى الملف الذي تم إنتاجه، ويتجاهل ذلك.ولكن لا يمكن أن يضر تقليل المهام التي يجب القيام بها، وذلك باستخدام خيارات lzz لمنع إعادة إنشاء ملف مماثل.
مع تحياتي - دانيال