# 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 $@