automake und Projektabhängigkeiten

8

Ich habe ein Projekt, das ich mit automake erstellen möchte. Das Projekt besteht aus verschiedenen Komponenten oder Modulen und es gibt Abhängigkeiten zwischen Modulen, die erfordern, dass das Projekt in einer bestimmten Reihenfolge erstellt wird.

Zum Beispiel:

%Vor%

Ich bin relativ neu in Automake, aber ich (fast) weiß, wie man es benutzt, um ein einzelnes Projekt erfolgreich zu bauen.

Ich würde gerne eine 'Master'-Projektdatei haben (wenn das möglich ist), die die Erstellungsreihenfolge der Projektmodule angibt, Komponententests ausführt und den gesamten Erstellungsprozess durchläßt, wenn entweder:

  • Eines der Module kann nicht erstellt werden
  • Eines der Module schlägt einen Komponententest fehl

Wie würde ich eine solche "Masterprojekt" -Datei schreiben (oder einen anderen Mechanismus aufrufen), um Projekte zu erstellen, die viele intermodulare Abhängigkeiten haben?

    
Homunculus Reticulli 21.11.2011, 17:51
quelle

2 Antworten

5

Wenn Sie Autotools verwenden, können Sie auch automake verwenden. Die oberste Ebene Makefile.am kann eine Liste von Unterverzeichnissen enthalten, die der Reihe nach abstammen, z. B .:

%Vor%

Das Unterverzeichnis Makefile.am kann Ziele für Tests hinzufügen, die mit 'make check' aufgerufen werden, wodurch der Build bei Bedarf erzwungen wird:

%Vor%

Es gibt eine Menge zu lernen, und die beste aktuelle Praxis kann schwierig zu bestimmen sein, aber wenn Sie Autotools verwenden, werden Sie an diese Situation gewöhnt sein.

BEARBEITEN :

info automake liefert die Referenzdokumentation - aber es macht ein schlechtes Tutorial. Einer der besten Guides, auf die ich gestoßen bin, kann hier gefunden werden.

    
Brett Hale 21.11.2011, 18:14
quelle
1

Ich habe das gleiche Problem festgestellt und gefunden dass eine reine autotools-lösung nur sehr schwer in betrieb zu nehmen ist, weil das configure script zb für module4 hängt von der Installation von module1 ab.

Ein handgerolltes Makefile und ein Skript für diese Situation können relativ einfach erstellt werden. Ich habe unter dem rapidSTORM-Projekt Makefile eingefügt. Es wird für die Out-of-Tree-Erstellung verwendet (Quellverzeichnis und Buildverzeichnis).

%Vor%     
thiton 21.11.2011 17:56
quelle

Tags und Links