# Makefile, um HTML-Files aus *.wml zu machen.
# Nebenbei passiert Automatisches, wie z.B. Redirectseiten bauen.
#
# Wenn irgendwas scheinbar nicht klappt: make all

SHELL := bash
WML := wml

#-- Alle existierenden WMLs
wmls := $(wildcard *.wml)

#-- Zu erzeugende HTMLs. Einfach das ".wml" durch ".html" ersetzen
htmlswmls := $(addsuffix .html, $(basename $(wmls)) )

#-- Diese sollen nicht automatisch/aus Std.regel erzeugt werden 
htmlswmls-no := inhalt.auto.html template.html newslist.html news.rss.html 

wmls-no :=      inhalt.auto.wml  template.wml  newslist.wml  news.rss.wml

htmlswmls := $(filter-out $(htmlswmls-no),$(htmlswmls))

wmls2 := $(filter-out $(wmls-no),$(wmls))

htmls := $(wildcard *.html)


#-- Defaultziel
all: $(htmlswmls) inhalt.auto.html news.rss news.rss.xml everytime
#$(redirects) 

#-- Ohne Neubau von .Makefile.in (wird per Trick verhindert, s.u.)
schnell: all rechte delgen ziptabelle

nurupload: rechte delgen ziptabelle

preupload: rechte delgen ziptabelle

rechte:
	@chown --changes -R walter:www-data  *  ../../var/*  .git  .* ../.*
#	-- Extended FACL entfernen; muss vor chmod stehen
	@setfacl         -b                  *
	@chmod --changes -R a+r              *  ../../var/*  .git  .* ../.*
	@chmod --changes -R a+rw                ../prg/tabelle/data/*
	@chmod --changes -R u+rwx,g+rx,o+rx     ../prg/fluch/       ../prg/fluch/*
	@chmod --changes -R u+rwx,g+rx,o+rx     ../prg/rnummer/     ../prg/rnummer/*
	@chmod --changes -R u+rwx,g+rwx,o+rx    ../prg/pastpuzzle/  ../prg/pastpuzzle/*

#-- lösche generierte tmp. Dateien
delgen:	
	@rm -f ../prg/tabelle/gen/*.kml
	@rm -f ../prg/tabelle/genimg/*.png


ziptabelle: ../prg/tabelle/tabellesrc.zip

../prg/tabelle/tabellesrc.zip: ../prg/tabelle/*.php ../prg/tabelle/*.svg ../prg/tabelle/*.css
	@cd ../prg/tabelle/ && zip -o tabellesrc.zip *.php *.svg *.css 

   
linkcheck: 
	linkchecker -v -r1 $(htmls) > .linkcheckresult.txt

#-- Sonderlocken: der wird n䭬ich besonders aufgebaut:
inhalt.auto.html: inhalt.auto.wml $(wildcard ../../var/u32/inhalt/*.inhalt) 
	$(call .wml2html,$<)
	

#-- rss-Feed umkopieren
news.rss.xml: news.rss
	cp news.rss news.rss.xml

#-- RSS erzeugen
news.rss: newslist.wml news.rss.wml
	$(WML) -D WML_DEST_FILENAME=news.rss -o news.rss  news.rss.wml


#-- Die darf nicht automatisch gebaut werden, da die USB-Platten 
#-- nicht immer gemountet sind
#filmliste.txt: /var/local/video0/filmliste.txt
#	cp /var/local/video0/filmliste.txt filmliste.txt


# -- HTML aus wml bauen	
.wml2html =\
	$(WML) -D WML_DEST_FILENAME=$@ -o $@  $< 

ifeq (all, $(MAKECMDGOALS))

# -- Redirects bauen
# -- Aufruf "mkredirect.sh index index.htm"
#%.htm: mkredirect.sh std.incl
#	sh mkredirect.sh $(basename $@) $@

#-- Redirectsonderf䬬e (falsche Dateinamen)
palmpilo.htm: mkredirect.sh 
	sh mkredirect.sh palmpilot $@

#-- Fuer diese werden Redirects gebaut (inzwischen per apache-rewrite gelöst).
#redirects :=  \
#	afusites.htm digiware.htm filespy.htm \
#	gggg.htm handy.htm histcomp.htm homeeng.htm \
#	index.htm inhalt.htm moni.htm nervwort.htm\
#	palmpilo.htm pgp.htm  \
#	splitcp.htm soft_htm.htm soft_w.htm software.htm suchen.htm \
#	zitate.htm

#-- ggfs. Hilfsmakefile erzeugen
.Makefile.in : $(wmls2)
	(echo "# File automagically generated by \`$(MAKE) $(MAKECMDGOALS)'";\
	echo;\
	for f in $^; do\
		b=`basename $$f .wml`;\
		if grep '^#!wml -o ' -i -q $$f; then\
			output="";\
			compile='$$(call .wml2html,$$<)';\
		else\
			output="-o $$b.html";\
			compile='$$(call .wml2html,$$<)';\
		fi;\
		$(WML) -M $$f $$output;\
		echo "	$$compile";\
		echo;\
	done;\
	) > $@
	
endif	
	

#-- Einzelabh䮧igkeiten
include .Makefile.in

#geo.html: geo.wml std.incl $(wildcard download/geo/*.km*) 

#geo.html immer bauen, damit die Update-Icons, und die Datumsfarben immer stimmen
everytime:
	$(WML) -D WML_DEST_FILENAME=geo.html -o geo.html  geo.wml
