2016-05-02 12 views
0

ich dies in meinem Makefile muß Makefile:Wie optionale Datei hinzufügen

VERSION=0.10.2 
SED=sed 

www/Makefile: www/Makefile.in Makefile .$(VERSION) 
    test -d www && $(SED) -e "s/{{VERSION}}/$(VERSION)/g" www/Makefile.in > www/Makefile || true 

Makefile in www-Verzeichnis zu aktualisieren, aber meine Repo auf Github hat nicht das Verzeichnis es auf meinem lokalen Laufwerk nur ist, wenn ich rufen Sie es nach dem Klonen des Repos Ich habe Fehler, dass es keine Regeln zu machen www/Makefile.in

Wie kann ich das machen, wenn es keine www/Makefile.in Datei gibt?

+0

Vielleicht:

Zum Beispiel, entfernen Sie die www/Makefile.in aus prereq Liste, wenn es nicht vorhanden ist:

www/Makefile: $(wildcard www/Makefile.in) Makefile .$(VERSION) test -d www && $(SED) -e "s/{{VERSION}}/$(VERSION)/g" www/Makefile.in > www/Makefile || true 

Alternativ deaktivieren Sie die völlig Regel, wenn das www Verzeichnis existiert nicht missverstehen Sie die Frage, aber was wollen Sie machen, wenn es kein 'www/Makiefile.in' gibt? – Beta

+0

@Beta ignorieren Sie einfach diese Tatsache und fahren fort. – jcubic

Antwort

1

Wie kann ich das machen, wenn es keine www/Makefile.in Datei gibt?

Zur Umgehung der ähnlichen Situation verwende ich die $(wildcard) Funktion. Offiziell wird die Funktion verwendet, um die Shell-Platzhalter zu erweitern, es wird jedoch auch nach der Verfügbarkeit von Dateien/Verzeichnissen gesucht. Wichtig: Wenn Datei/Verzeichnis nicht existiert, gibt $(wildcard) eine leere Zeichenfolge zurück. Ich

ifneq (,$(wildcard www)) 
www/Makefile: www/Makefile.in Makefile .$(VERSION) 
    test -d www && $(SED) -e "s/{{VERSION}}/$(VERSION)/g" www/Makefile.in > www/Makefile || true 
endif 
+0

Erste Lösung funktioniert der zweite Wurf Fehler, dass es keine Regeln für www/Makefile gibt, wenn www fehlt. – jcubic

+0

Wenn die zweite nicht funktioniert, bedeutet das, dass Sie irgendwo eine Abhängigkeit vom 'www/Makefile' haben. Sie könnten auch versuchen, die Abhängigkeit dort, z. '$ (wenn $ (Wildcard www), www/Makefile)'. Viel Glück. – Dummy00001