Kritischer Abschnitt in paralleler Datei

8

Ich versuche ein altes Makefile zu parallelisieren.

Tatsächlich muss ich sicherstellen, dass einige Generatorskripte nicht parallel aufgerufen werden, bevor der Kompiliervorgang beginnt.

Die Generatoren werden immer vor dem Kompilieren aufgerufen. Gibt es eine Möglichkeit, einen etwas kritischen Abschnitt in einem Makefile zu erstellen?

Das Makefile ist chaotisch, ich würde es vorziehen es hier nicht zu posten.

    
Stasik 20.05.2011, 10:03
quelle

2 Antworten

3

Sie könnten die Regeln für die generierten Dateien in ein separates Makefile einfügen und so etwas wie folgt machen:

%Vor%

Mit GNU Make ist dies jedoch standardmäßig parallel. Sie müssen es unterdrücken, und das Handbuch ist nicht genau klar, wie Sie das tun würden. Vielleicht würde eine Kombination der folgenden Möglichkeiten funktionieren, abhängig davon, welche Implementierungen Sie unterstützen möchten:

  • Übergeben Sie das -j1 -Flag:

    %Vor%
  • Unterdrücken MAKEFLAGS Optionen:

    %Vor%
  • Unterdrücken Sie die parallele Ausführung mit der folgenden Zeile in Makefile.Generators :

    %Vor%
Dietrich Epp 20.05.2011, 10:35
quelle
2

Sie können eine Regel erstellen, die alle Skripts ausführt, und dann sicherstellen, dass alle anderen Regeln von dieser Regel abhängig sind.

%Vor%     
SoapBox 20.05.2011 11:09
quelle

Tags und Links