Wie geben Sie ein makefile-Ziel in ein anderes Verzeichnis?

Ich versuche herauszufinden, warum kann ich nicht ein Ziel angegeben, wie in anderen Verzeichnis.

Ich versuche zu generieren, werden einige php-Klassen, die aus json-Dateien, aber ich habe mich verändert die Zeile, die tatsächlich erzeugt das php auf ein dummy-echo-Anweisung, also jemand anderes kann einfach kopieren, einfügen und testen, ob Sie fühlen sich sehr großzügig.

Gibt es zwei weitere Dinge hinzufügen, um das Verzeichnis mit dem makefile:

  • Eine dummy-Abhängigkeit eine Datei namens PatientDbPath.json
  • Ein Verzeichnis namens aus

Wenn ich ein makefile mit dem folgenden:

.SUFFIXES: .php .json
.json.php:
    echo "HelloMe" > PatientDbPath.php

PatientDbPath.php: PatientDbPath.json

clean:
    $(RM) PatientDbPath.php

Dann alles funktioniert, wenn ich laufen machen; PatientDbPath.php ist korrekt angelegt und das nächste mal wenn ich make ausführe, bekomme ich die Meldung make: 'PatientDbPath.php' is up to date.

Allerdings möchte ich erzeugen die php-Datei in einem separaten Verzeichnis, so dass ich aktualisiert mein makefile die folgende:

.SUFFIXES: .php .json
.json.php:
    echo "HelloMe" > out/PatientDbPath.php

out/PatientDbPath.php: PatientDbPath.json

clean:
    $(RM) out/PatientDbPath.php

Sobald ich das tun, sagt mir make: Nothing to be done for 'out/PatientDbPath.php' obwohl dort ist keine Datei PatientDbPath.php in das out-Verzeichnis.

So, ich dachte, vielleicht war es etwas, mit dem suffix-Regeln und habe ich eine Dritte Datei makefile.

out/PatientDbPath.php: PatientDbPath.json
    echo "Whatever" > out/PatientDbPath.php

clean:
    rm out/PatientDbPath.php

Diese arbeitet man gut, wie der erste. Kann jemand sehen, was ich falsch mache in meinem 2. makefile?

Dank.

InformationsquelleAutor Juan Mendes | 2010-11-09
Schreibe einen Kommentar