Ziel in Makefile aus einer Variablen generieren

Gerald Schade

In meinem Quellcodeverzeichnis gibt es Dateien mit den Namen man_en , man_de .
Jetzt möchte ich für jeden von ihnen Ziele haben, wie:
/usr/share/man/man1/$(PROGRAM).1.gz und
/usr/share/man/de/man1/$(PROGRAM).1.gz , für Regeln wie:

/usr/share/man/man1/$(PROGRAM).1.gz: man_en  
     gzip -c man_en > /usr/share/man/man1/$(PROGRAM).1.gz
/usr/share/man/de/man1/$(PROGRAM).1.gz: man_de  
     gzip -c man_de > /usr/share/man/de/man1/$(PROGRAM).1.gz

Wenn jemand eine Datei man_fr zum Quellcodeverzeichnis hinzufügt , sollte das Ziel
/usr/share/man/fr/man1/$(PROGRAM).1.gz
automatisch generiert oder bereitgestellt werden.
Kann ich dies ohne ein Programm erreichen, das mein Makefile modifiziert?

Mike Kinghan

Im Wesentlichen ist dies nur eine Anwendung für eine implizite Musterregel , aber es wird etwas kompliziert durch die Tatsache, dass dies man_eneine Ausnahme von der allgemeinen Musterregel ist, die den Zielnamen liefert. Hier ist eine Beispiellösung:

Makefile

PROGRAM ?= prog

FOREIGN_MAN_SRCS := $(subst man_en,,$(wildcard man_*))
FOREIGN_MAN_TARGS := $(patsubst man_%,/usr/share/man/%/man1/$(PROGRAM).1.gz,$(FOREIGN_MAN_SRCS))
EN_MAN_TARG := /usr/share/man/man1/$(PROGRAM).1.gz

.PHONY: all

all: $(FOREIGN_MAN_TARGS) $(EN_MAN_TARG)

/usr/share/man/man1/$(PROGRAM).1.gz: man_en  
    gzip -c man_en > /usr/share/man/man1/$(PROGRAM).1.gz

/usr/share/man/%/man1/$(PROGRAM).1.gz: man_%  
    gzip -c man_$* > /usr/share/man/$*/man1/$(PROGRAM).1.gz

was läuft wie:

$ make --dry-run
gzip -c man_de > /usr/share/man/de/man1/prog.1.gz
gzip -c man_fr > /usr/share/man/fr/man1/prog.1.gz
gzip -c man_en > /usr/share/man/man1/prog.1.gz

Ich empfehle das GNU Make-Handbuch

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Makefile: Generiere ein Ziel aus einer numerischen Sequenz

Generieren von Zufallszahlen, die aus einer anderen Variablen eindeutig sind

Generieren jeder Kombination von Variablen aus einer Liste

makefile - Wie weise ich einer Variablen auf einem bestimmten Ziel einen Wert zu?

Generieren von Funktionen in einer Schleife mit Variablen aus der Schleife verursachen Schatteneffekte von Variablen

So lassen Sie Makefile das Ziel aus einer anderen Datei sehen

Makefile: Verwenden Sie ein Ziel aus einer project.mk-Datei

Ein Problem beim Generieren von Variablen aus einer kontaminierten bivariaten Normalverteilung

Generieren einer neuen RDD-Variablen aus zwei großen RDDs

Generieren Sie eine Matrix einer eindeutigen Kombination mit 2 Variablen aus einem Datenrahmen r

Vorschläge zum Generieren einer Gesamtsumme aus den in Variablen gespeicherten Kontrollkästchendaten

Stata foreach-Schleife zum Generieren neuer Variablen aus einer Liste von Variablennamen

Makefile: Wählen Sie Dateien nach Erweiterung aus einer Variablen aus

Makefile teilt ein Ziel durch Überschreiben der Build-Variablen

Vorlagentyp aus einer Variablen

Generieren Sie Auswahloptionseinträge aus Variablen in ReactJs

Neue Variable aus Beobachtungen in mehreren Variablen generieren

So generieren Sie einen String aus einer Variablen in einer Funktion und zeigen ihn über die serielle Schnittstelle an (ESP8266)

Kann ich aus einer Vorlage basierend auf einer Spalte /konstante/ mit variablen Daten neue Excel-Dateien generieren?

Generieren Listen aus einer Liste

Generieren einer Tabellenausgabe aus jq

Generieren einer Zufallszahl aus Benutzereingaben

Generieren einer Zufallszahl zwischen 2 Variablen

Makefile - Führe eine Regel für jedes Feld in einer Variablen aus

Wie lade und exportiere ich Variablen aus einer .env-Datei in Makefile?

Erstellen einer Variablen aus der Ausgabe des Bash-Befehls in makefile

Ganzzahl aus einer Zeichenfolge in Ziel c extrahieren

Generieren Sie eine Liste von Variablen in einer variablen Vorlage

Generieren einer Zufallsstichprobe aus einer Exponentialverteilung in Stata

TOP Liste

  1. 1

    TypeAhead.js zeigt keine Ausgangsschienen an?

  2. 2

    Wie lade ich eine Datei herunter, ohne den Typ oder Dateinamen zu kennen?

  3. 3

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  4. 4

    Pandas rufen einen Wert basierend auf dem Index ab

  5. 5

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  6. 6

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  7. 7

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  8. 8

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  9. 9

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  10. 10

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  11. 11

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  12. 12

    MongoDB eingebettetes Dokument unterscheiden und filtern

  13. 13

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  14. 14

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  15. 15

    Aktualisieren des Werts im Json-Objekt in Python

  16. 16

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  17. 17

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  18. 18

    Warum funktioniert Phantomjs nicht mit dieser Site?

  19. 19

    Docker bleibt beim Ausführen von time.sleep (1) in einer Python-Schleife hängen

  20. 20

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  21. 21

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

heißlabel

Archiv