2009-08-20 11 views
1

Makefiles sind wirklich sehr nützlich. Aber die Syntax ist etwas komplex und begrenzt. Für ein Projekt, ich brauche Ziele erstellen 1 bis n, und würde wirklich so etwas wie dies gerne schreiben:Wie man komplexe Makefiles erzeugt, z.B. von einer Vorlage

all : target1 ... target100 

target%d : target%d.pre 
    ./script.py %d 

I make capture die Variable (%d) und dann in der gesamten Regel verwendet, haben möchte. Ich könnte mir vorstellen, dass es möglich ist, dies mit einer komplexen Verwendung von Mustern (% .xyz) und s zu tun, aber das wäre sehr ungeschickt und unlesbar.

Ich denke über eine Vorlage-Engine wie Cheetah zu schreiben eine Vorlage (die Schleifen enthalten kann), die dann in ein Makefile umgewandelt werden würde. Hat jemand eine bessere Idee oder Erfahrung damit?

+1

Was mit Ziel% falsch ist: Ziel % .pre (Wagenrücklauf, Tab) ./script.py $ * – Beta

+0

ah, cool! Beim Lesen der Dokumente dachte ich nur Suffixe (% .o) wären möglich, aber keine Präfixe. Nett. :) –

Antwort

0

Als Beta in einem Kommentar darauf hingewiesen wird der zweite Teil gelöst tatsächlich von

target% : target%d.pre 
    ./script.py %d 

Da kann der erste Teil durch gelöst werden:

files := $(shell for i in `seq 1 100`; do echo target$$i; done) 

all : $(files) 
0

Sie sollten auf jeden Fall einen Blick auf CMake werfen, die alle Makefile-Generation für Sie tun können.

Verwandte Themen