# Makefile zum Erzeugen von html-Dateien ohne Sitemap-html-Dateien # Mit !! versehene Definitionen bitte anpassen! # Encoding der Dateien encoding = UTF-8 # dir = Directory unterhalb von base (siehe unten), in das der Stamm der # Dateihierarchie geschrieben werden soll. Normalerweise leer. Andere Werte # nur sinnvoll zum Testen einer Hierarchie bevor diese an die richtige Stelle # geschrieben wird. # dir = franz/test4/ dir = # !! subdir = Directory unterhalb von base, in das die generierten Dateien # geschrieben werden sollen (ohne Erweiterung wie in base - siehe unten). # Beginnt immer mit $(dir). # subdir = $(dir)franz/ subdir = $(dir) # !! prefix = Prefix, der vor generierte Dateinamen aus "sitemap" gestellt wird # (vor allem im linken Menue). Sollte leer sein, wenn "sitemap" im selben # Directory wie "Makefile" und gen-Dateien steht. Steht "sitemap" weiter # aussen in der Hierarchie, sollte hier ein relativer Pfad stehen (mit # absoluten URIs nicht getestet). prefix = ../ # !! base = Basis des Dateisystems mit den Web-Seiten erweitert um $(subdir) # und moeglicherweise weiteren Pfad. $(base)$(prefix) sollte jenen Teil von # $(base) ergeben, der mit $(subdir) endet. base = /usr/ftp/pub/$(subdir)lehre/ # !! me = Name in "sitemap", der als aktueller Name der generierten Datei im # linken Menue aufscheint. Kann, aber muss nicht mit der Erweiterung von # $(base) nach $(subdir) ident sein. me = lehre/ # !! activeme = Flag, das besagt, ob aktueller Name im linken Menue ein Link # (activeme = 1) oder ein einfacher (fetter) Text (activeme = 0) sein soll. activeme = 0 # home = absolute URI des Directories mit den generierten Seiten. # Sollte nicht geaendert werden. home = http://www.complang.tuwien.ac.at/$(subdir) # site = absolute URI der Basis der Webseiten. Hier werden allgemeine # Resourcen wie css-Dateien gesucht. Sollte nicht geaendert werden. site = http://www.complang.tuwien.ac.at/$(dir) # !! gsign = Verantwortlicher fuer deutschsprachige Seiten. Verwendet in #
... letzte Aenderung: () ... gsign = Puntigam # !! esign = wie gsign, aber fuer englischsprachige Seiten esign = Puntigam # date = Datum der letzten Aenderung. Format sollte nicht geaendert werden, # damit bis auf Datum unveraenderte Seiten richtig als solche erkannt werden. date = `date +%Y-%m-%d` # map = Pfad und Name der Datei mit Sitemap-Informationen wie im linken Menue. map = $(prefix)sitemap # iflag = Flag fuer "install". Kann "-n" enthalten, wenn geaenderte Seiten # nicht tatsaechlich an die richtige Stelle kopiert werden sondern nur # entsprechende Informationen ausgegeben werden sollen. Aenderung im # Makefile wenig sinnvoll. Verwendung: "make install iflag=-n". Auch # sinnvoll: "make install iflag=-f" (forced installation). iflag = # !! subsys = Liste von Namen von Directories, die gen-Dateien fuer zu # generierende Seiten und Makefiles enthalten. Make wird rekursiv in diesen # Directories aufgerufen. subsys = # subinst = Liste von Directories, in denen die in $(subsys) erzeugten Dateien # installiert werden sollen. Sollte nicht geaendert werden. subinst = $(subsys:%=$(base)%) # gens = Liste der gen-Dateien aus denen html-Dateien erzeugt werden sollen. # Braucht nicht geaendert werden. gens = $(wildcard *.gen) # locals = Liste der aus gen-Dateien erzeugten noch nicht installierten # html-Dateien. Sollte nicht geaendert werden. locals = $(gens:%.gen=%.html) # installed = Liste der zu installierenden html-Dateien. #Sollte nicht geaendert werden. installed = $(locals:%=$(base)%) # genpage = awk-Script zum Erzeugen einer html-Datei aus "sitemap" und einer # gen-Datei. genpage = /usr/ftp/pub/franz/genhtml/genpage.awk # stdflags = Flags fuer den Aufruf von awk mit $(genindex) bzw. $(genpage) # (vor der ersten zu verarbeitenden Datei) stdflags = -v date=$(date) -v "gsign=$(gsign)" -v "esign=$(esign)" -v "prefix=$(prefix)" # stdfiles = Dateien (und "hintere" Flags) zur Bearbeitung mittels $(genindex) # bzw. $(genpage) durch awk stdfiles = "home=$(home)" "site=$(site)" $(map) # awk = Aufruf von awk mit $(stdflags) awk = gawk $(stdflags) # inst = Aufruf eines Scripts zum Installieren einer erzeugten html-Datei inst = /usr/ftp/pub/franz/genhtml/install $(iflag) $(base) # "make [all]" generiert alle html-Dateien, aber ohne automatische Installation .PHONY: all all: $(locals) $(subsys) # "make install" generiert und installiert alle html-Dateien .PHONY: install install: $(installed) $(subinst) # "make clean" loescht lokal generierte html-Dateien, aber keine installierten .PHONY: clean clean: rm $(locals) for i in $(subsys); do $(MAKE) -C $$i clean; done # Erzeugung einer html-Datei aus gen-Datei %.html: %.gen $(map) $(genpage) @echo generating: $@ @$(awk) -v "encoding=$(encoding)" -v "me=$(me)" -f $(genpage) "activeme=$(activeme)" $(stdfiles) $< >$@ genrss = $(genhtmlbase)/genrss.awk # Erzeugung einer rss-Datei aus gen-Datei %.xml: %.gen $(map) $(genrss) @echo generating: $@ @$(awk) -v "encoding=$(encoding)" -v "me=$*" -f $(genrss) $(stdfiles) $< >$@ # Installation einer html-Datei $(base)%.html: %.html @$(inst) $< # rekursiver Aufruf von "make install" fuer Untersysteme .PHONY: $(subinst) $(subinst): $(MAKE) -C $(patsubst $(base)%,%,$@) "iflag=$(iflag)" install # rekursiver Aufruf von "make" fuer Untersysteme .PHONY: $(subsys) $(subsys): $(MAKE) -C $@