Pergunta

Eu uso essa ferramenta chamada C++ preguiçoso que divide um único arquivo C++ .lzz em um arquivo .h e .cpp.Eu quero Makepp esperar que ambos os arquivos existam após minha regra para construir arquivos .lzz, mas não tenho certeza de como colocar dois alvos em uma única linha de construção.

Foi útil?

Solução

Eu nunca usei o Makepp pessoalmente, mas como é um substituto imediato para o GNU Make, você poderá fazer algo como:

build: foo.h foo.cpp
   g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo

foo.h foo.cpp: foo.lzz
   lzz foo.lzz

Também não tenho certeza sobre a invocação do lzz, mas isso deve ajudar.Você pode ler mais sobre isso em http://theory.uwinnipeg.ca/gnu/make/make_37.html.

Outras dicas

Lzz é incrível!Isso é exatamente o que eu estava procurando http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09

Na verdade, tudo que você precisa é depender (normalmente) de foo.o em sua regra de link e de uma regra padrão para chamar lzz:

%.cpp %.h: %.lzz
    lzz $(input)

O resto se encaixará automaticamente.Ao compilar qualquer fonte que inclua foo.h ou vincular foo.o a uma biblioteca ou programa, lzz primeiro será chamado automaticamente.

Makepp também reconhecerá se apenas o carimbo de data/hora, mas não o conteúdo do arquivo produzido, foi alterado e ignorará isso.Mas não custa nada dar menos trabalho, usando as opções lzz para suprimir a recriação de um arquivo idêntico.

Atenciosamente - Daniel

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top