Ich habe eine Reihe von Textdateien im Verzeichnis help_pages/
, alle in ReST formatiert. Ich versuche, mein GNU machen Makefile
ein paar Regeln hinzufügen, dass:Verwenden von make, um reST-Dateien zu übersetzen
- Run jede Datei im
help_pages
Verzeichnis (und Unterverzeichnisse) mit der Endung ‚.rst‘ durch eine App, die ein ausspuckt gültige HTML-Datei (im Moment verwende ich nurrst2html
). - Kopieren Sie diese HTML-Ausgabedateien in ein Zielverzeichnis und reproduzieren Sie die Verzeichnisstruktur, die im Verzeichnis
help_pages
vorhanden war.
So würde zum Beispiel help_pages/some/dir/foo.rst
zuerst help_pages/some/dir/foo.html
übersetzt werden, und dann zu public/help/some/dir/foo.html
kopiert.
Ich habe den ganzen Tag versucht, die intracacies von Makefiles zu lernen, aber am Ende gab ich auf. Hier ist, was ich bereits:
# Directory that the .rst files reside in:
HELP_DIR=help_pages
# use 'find' to locate all such files:
HELP_SRCS=$(shell find $(HELP_DIR) -name "*.rst")
# work out what path the intermediate files would be
HELP_TARGETS=$(HELP_SRCS:.rst=.html)
# do the translation.
$(HELP_TARGETS): %.html: %.rst
rst2html $< [email protected]
help: $(HELP_TARGETS)
.phony:
help
Diese Art-Werke - die .rst Dateien werden übersetzt, um Dateien .html, aber ich habe keine Ahnung, wie sie installieren ins Finale, Zielverzeichnis. Wenn ich einen Befehl cp
zu dem Hauptbuild-Rezept hinzufüge, werden die Dateien nicht neu installiert, wenn sie in dem Zielverzeichnis nicht vorhanden sind.
Im Idealfall möchte ich, dass ein Ziel die Hilfedateien erstellt, und eines, um sie zu installieren, und ein drittes (genannt "Hilfe"), das von diesen beiden abhängt. Ich denke, das wird mir die größte Flexibilität geben.
Kann mir jemand Tipps geben, wie das geht?
Cheers,