2012-04-15 11 views
1

Ich habe ein Skript, das C++ - Quelldateien von vorher unbekannter Nummer und Namen erzeugt, die dann in eine Bibliothek kompiliert werden müssen. Bisher habe ich dies mit einem einfachen (Shell) for-Schleife in meinem Makefile:unbekannte Anzahl von gebauten Quellen mit automake

compile: 
     for f in `ls -1 *.cpp` ; do g++ -c ... 
     ... 

Es wird keine andere C++ Quellen im Verzeichnis, so dass ich einfach alles zusammenstellen, die es gibt.

Jetzt möchte ich mein Build-System auf autoconf/automake ändern und ich frage mich, was der "richtige" Weg dies zu tun wäre. Die Tutorials, die ich gefunden habe, decken nur den Fall ab, in dem Sie die Anzahl und Namen der Quellen kennen, die generiert werden.

Gibt es zum Beispiel eine Möglichkeit, auf den Compiler-Namen und alle Flags, die autoconf/automake für mich zusammengestellt haben, zuzugreifen, damit ich sie in meinen eigenen Kompilierbefehl einfügen kann?

Vielen Dank im Voraus.

Antwort

2

Ich würde das Skript ändern, um eine Makefile.am zu generieren, die alle diese Dateien explizit auflistet.

+0

Aber ich habe bereits eine Makefile.am die für die Ausführung des Skripts und zum Erzeugen der Quellen verantwortlich ist. Das Skript hängt von anderen Eingabedateien ab und muss bei jeder Änderung erneut ausgeführt werden. (Ich denke, ich hätte das erwähnen sollen.) –

0

So haben Sie so etwas wie:

FOO_SCRIPT=script.sh 
libfoo_la_SOURCES=foo.cpp bar.cpp baz.cpp 

foo.cpp : foo.input 
     $(FOO_SCRIPT) $< 

bar.cpp baz.cpp : bar.input 
     $(FOO_SCRIPT) $< 
0
SRC= $(wildcard *.cpp) 
OBJ= $(SRC:.cpp=.o) 
[...] 
target: $(OBJ) 
Verwandte Themen