Сделать источник с двумя целями
-
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 для подавления воссоздания идентичного файла.
С уважением - Даниэль