2008-08-30 13 views
2

J'utilise cet outil appelé Lazy C++ qui casse un seul fichier C++ .lzz en un fichier .h et .cpp. Je veux Makepp pour m'attendre à ce que ces deux fichiers existent après ma règle pour la construction des fichiers .lzz, mais je ne suis pas sûr comment placer deux cibles dans une seule ligne de construction.Créer une source avec deux cibles

Répondre

3

Je ne l'ai jamais utilisé Makepp personnellement, mais comme il est un remplacement pour drop-in GNU Make, vous devriez être en mesure de faire quelque chose comme:

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

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

également pas sûr de l'invocation de RHE là, mais cela devrait aider. Vous pouvez en lire plus à ce sujet au http://theory.uwinnipeg.ca/gnu/make/make_37.html.

2

Lzz est incroyable! Ceci est juste ce que je cherchais http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09

En fait, tout ce que vous avez besoin est de dépendre (en général) sur foo.o dans la règle de lien, et une règle de modèle pour appeler RHE:

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

Le reste tomber en place automatiquement. Lorsque vous compilez une source contenant foo.h ou que vous liez foo.o à une bibliothèque ou à un programme, lzz sera d'abord appelée automatiquement. Makepp reconnaîtra également si seulement l'horodatage mais pas le contenu du fichier produit a changé, et l'ignorera. Mais il ne peut pas faire de mal de le faire moins, en utilisant les options lzz pour supprimer la recréation d'un fichier identique.

Cordialement - Daniel

+0

Merci pour le lien, c'est une discussion intéressante. Btw je suis totalement avec vous, et j'apprécie que vous soyez patient et expliquez votre position couramment, particulièrement à la lumière de certaines des réponses étant assez impoli. –

Questions connexes