Вопрос

Я использую этот инструмент под названием Lazy C ++ , который разбивает один файл C ++ .lzz на .h и Файл .cpp. Я хочу, чтобы Makepp ожидал, что оба этих файла будут существовать после моего правила создания файлов .lzz, но я Я не уверен, как поместить две цели в одну строку сборки.

Это было полезно?

Решение

Я никогда не использовал 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 для подавления воссоздания идентичного файла.

С уважением - Даниэль

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top