# Makefile zum Erzeugen von regulaeren html-Dateien und 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. 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 = ../ 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)directory/ base = /usr/ftp/pub/$(subdir) # 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) # !! gresp = deutsche Beschreibung des Verantwortlichen fuer das gesamte # Directory. Wird in deutschsprachiger Sitemap verwendet (Web-Seiten werden # von ... betreut). # gresp = Franz Puntigam gresp = der Complang-Gruppe # !! eresp = wie gresp, aber fuer englischsprachige Sitemap eresp = the Complang Group # !! 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 # nomap = Pfad und Name der Datei mit Sitemap-Informationen, die nicht im # linken Menue aufscheinen sollen. Kann leer bleiben, wenn nicht benoetigt. nomap = $(prefix)nomaps # gmap = Name der generierten deutschsprachigen Sitemap-Datei. Sollte nicht # geaendert werden, damit Verweise auf andere Sitemaps funktionieren. gmap = $(prefix)sitemap # emap = wie gmap, aber fuer generierte englischsprachige Sitemap-Datei. emap = $(prefix)sitemap-e # !! gstate = Statement (Text rechts oben auf jeder Seite), das zur # deutschsprachigen Sitemap dazugefuegt wird. Kann leer bleiben. gstate = Institut für Computersprachen
Programmiersprachen und Übersetzer # !! estate = wie gstate, aber fuer englischsprachige Sitemap. estate = Institute of Computer Languages
Compilers and Languages Group # 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 = lehre # 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 = $(gmap).html $(emap).html $(gens:%.gen=%.html) # installed = Liste der zu installierenden html-Dateien. #Sollte nicht geaendert werden. installed = $(locals:%=$(base)%) # genindex = awk-Script zum Erzeugen einer html-Sitemap-Datei aus "sitemap". genindex = /usr/ftp/pub/franz/genhtml/genindex.awk # 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 # Installation einer html-Datei $(base)%.html: %.html @$(inst) $< # Erzeugung deutschsprachiger Sitemap-html-Datei $(gmap).html: $(map) $(nomap) $(genindex) @echo generating: $@ @$(awk) -v "encoding=$(encoding)" -v "responsible=$(gresp)" -v "lang=de" -v "sitemap=$(gmap)" -v "othersitemap=$(emap)" -f $(genindex) "statement=$(gstate)" $(stdfiles) $(nomap) >$@ # Erzeugung englischsprachiger Sitemap-html-Datei $(emap).html: $(map) $(nomap) $(genindex) @echo generating: $@ @$(awk) -v "encoding=$(encoding)" -v "responsible=$(eresp)" -v "lang=en" -v "sitemap=$(emap)" -v "othersitemap=$(gmap)" -f $(genindex) "statement=$(estate)" $(stdfiles) $(nomap) >$@ # Erzeugung einer html-Datei aus gen-Datei %.html: %.gen $(map) $(genpage) @echo generating: $@ @$(awk) -v "encoding=$(encoding)" -v "me=$*" -f $(genpage) $(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) $< >$@ # 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 $@