Ich habe ein Makefile
, und ich versuche, diesen bestimmten Satz von Variablen zu machen und implizite Regeln arbeitenWarum funktioniert diese implizite Makefile-Regel nicht?
pcode-LINKDEPS := pasv5-database pasv5-log pasv5-utils
%/node_modules: $(%-LINKDEPS)
cd $*; npm install; for link in $^ ; do npm link $$link ; done
pasv5-database:
cd libs/database; npm link
I pcode/node_modules
Verzeichnis entfernen und führen make -d
und ich kann sehen, dass es die Musterregel %/node_modules
aufgreift und tut die grundlegende Installation, aber die $^
Erweiterung ist leer und so die Verbindung nicht erfolgt und die Voraussetzung pasv5-Datenbank wird nie ausgeführt. Bedeutet dies, dass ich %
nicht innerhalb der Voraussetzung Erweiterung setzen kann, und wenn ja, welchen Ansatz kann ich ergreifen, um pcode-LINKDEPS
für die Liste der Voraussetzungen ausgewählt, so dass das Ziel pasv5-database
ausgeführt wird?
Oder mache ich einen anderen grundlegenden Fehler?
Die pasv5-Datenbank (und die anderen Elemente von pcode-LINKDEPS) sind alle in .PHONY
definiert.
Perfect. Ich hatte eigentlich einige von denen, die nicht funktionierten, aber jetzt macht es genau das, was ich will. – akc42