SHELL := $(shell which bash)
H=@
TAGS = up-html up-html-ix up-home html html-ix home ldw ldw-ix
TAGS = www up-html up-css up-images up-download \
lint-xml index lddl install-xml \
test-html html install-html \
install-jed install-bib install-2 install-1 install-coq \
install-automath install-v install-matita \
LDWEBURL = http://helm.cs.unibo.it/lambdadelta/
SITEDIR = html
HTMLDIR = html/lddl
SRCDIR = web/home
LDDLDIR = web/lddl
XHTBLDIR = bin/xhtbl
INDEXDIR = bin/index
ETCDIR = etc
DOWNDIR = download
XSLTDIR = xslt
XMLDIR = xml
JEDDIR = $(HOME)/mps/jed
BIBDIR = $(HOME)/texmf/bibtex/bib
CONTRIBDIR = $(ETCDIR)/lambdadelta
HELENADIR = ../../software/helena
WEBDIRS = $(SRCDIR) $(ETCDIR)
REMOTE = helm.cs.unibo.it
RDIR = /projects/helm/public_html/lambdadelta
RHOMEDIR = $(REMOTE):$(RDIR)
RXMLDIR = $(RHOMEDIR)/xml
RDOWNDIR = $(RHOMEDIR)/download
RSTATICDIR = /projects/helm/public_html/lambda-delta/static
HTMLSTAMP = $(ETCDIR)/html.stamp
HTMLIXSTAMP = $(ETCDIR)/html_ix.stamp
HOMESTAMP = $(ETCDIR)/home.stamp
LDWSTAMP = $(ETCDIR)/ldw.stamp
LDWIXSTAMP = $(ETCDIR)/ldw_ix.stamp
SITEMAP = $(XSLTDIR)/sitemap.xsl
TABLES = $(XSLTDIR)/xhtbl.xsl
SLS = helena.sl automath.sl
BIB = lambdadelta.bib
CONTRIB = lambdadelta_2.tar.gz
XMLS = Environment/grundlagen_2/l/not.ld.xml \
Environment/grundlagen_2/l/et.ld.xml \
Environment/grundlagen_2/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.xml \
Environment/grundlagen_2/l/e/pairis1.ld.xml \
Environment/grundlagen_2/l/e/st/eq/landau/n/327/t25.ld.xml \
LDWEB = ld_web.xsl ld_web_root.xsl ld_web_library.xsl ld_web_ebnf.xsl
AUTOMATH = examples/automath/grundlagen_2.aut
COQ = coq/grundlagen_2.v
MATITA = matita/root matita/grundlagen_2.ma
XMLLINT = xmllint --noout
XSLT = xsltproc
XHTBL = $(XHTBLDIR)/xhtbl.native
INDEX = $(INDEXDIR)/index.native
XHTBLOPTS =
ifeq ($(XSLT), xsltproc)
XSLT_PARAM := --param
XSLT_OUT := -o
XSLT_XSL :=
XSLT_IN :=
endif
ifeq ($(XSLT), xalan)
XSLT_PARAM := -param
XSLT_OUT := -out
XSLT_XSL := -xsl
XSLT_IN := -in
XSLT += -indent 2
endif
XSLT += $(XSLT_PARAM) baseurl '"$(LDWEBURL)"' $(XSLT_PARAM) date '"$(shell date -R)"'
all:
# UPDATE HTML LDDL ###########################################################
$(ETCDIR)/html_lddl.tar.bz2: $(HTMLSTAMP)
@echo " UPDATE $(RHOMEDIR)/$(HTMLDIR)/"
$(H)tar -cjf $@ $(HTMLDIR)
$(H)scp $@ $(RHOMEDIR)/$(ETCDIR)
$(H)ssh $(REMOTE) "cd $(RDIR) && tar -xjf $@"
up-html: $(ETCDIR)/html_lddl.tar.bz2
# UPDATE HTML IX LDDL ########################################################
$(ETCDIR)/html_lddl_ix.tar.bz2: $(HTMLIXSTAMP)
@echo " UPDATE $(RHOMEDIR)/$(HTMLDIR)/*/index.html"
$(H)tar -cjf $@ `find $(HTMLDIR) -name index.html`
$(H)scp $@ $(RHOMEDIR)/$(ETCDIR)
$(H)ssh $(REMOTE) "cd $(RDIR) && tar -xjf $@"
up-html-ix: $(ETCDIR)/html_lddl_ix.tar.bz2
# UPDATE HTML HOME ###########################################################
up-home: $(HOMESTAMP)
@echo " UPDATE $(RHOMEDIR)/$(SITEDIR)/"
$(H)scp -q html/*.html $(RHOMEDIR)/$(SITEDIR)/
# GENERATE HTML LDDL #########################################################
$(HTMLSTAMP): LDWS = `find $(LDDLDIR) -name *.ldw.xml`
$(HTMLSTAMP): $(LDWSTAMP) $(SITEMAP) $(LDWEB:%=$(XSLTDIR)/%)
$(H)for LDW in $(LDWS); do \
TMP=$${LDW/web/html};HTML=$${TMP/ldw.xml/html}; \
echo " XSLT $$LDW"; \
mkdir -p $${HTML%/*}; \
$(XSLT) $(XSLT_OUT) $$HTML $(XSLT_XSL) $(XSLTDIR)/ld_web.xsl $(XSLT_IN) $$LDW; \
done
$(H)touch $@
$(H)touch $(HTMLIXSTAMP)
html: $(HTMLSTAMP)
# GENERATE HTML IX LDDL ######################################################
$(HTMLIXSTAMP): LDWS = `find $(LDDLDIR) -name index.ldw.xml`
$(HTMLIXSTAMP): $(LDWIXSTAMP) $(SITEMAP) $(LDWEB:%=$(XSLTDIR)/%)
$(H)for LDW in $(LDWS); do \
TMP=$${LDW/web/html};HTML=$${TMP/ldw.xml/html}; \
echo " XSLT $$LDW"; \
mkdir -p $${HTML%/*}; \
$(XSLT) $(XSLT_OUT) $$HTML $(XSLT_XSL) $(XSLTDIR)/ld_web.xsl $(XSLT_IN) $$LDW; \
done
$(H)touch $@
html-ix: $(HTMLIXSTAMP)
# GENERATE HTML HOME #########################################################
$(HOMESTAMP): LDWS = `find -L $(WEBDIRS) -name "*.ldw.xml"`
$(HOMESTAMP): $(LDWS) $(TABLES) $(LDWEB:%=$(XSLTDIR)/%)
$(H)for LDW in $(LDWS); do \
TMP=$${LDW##*/};HTML=$${TMP/ldw.xml/html}; \
echo " XSLT $$LDW"; \
$(XSLT) $(XSLT_OUT) $(SITEDIR)/$$HTML $(XSLT_XSL) $(XSLTDIR)/ld_web.xsl $(XSLT_IN) $$LDW; \
done
$(H)touch $@
home: $(HOMESTAMP)
# GENERATE XSL ###############################################################
$(TABLES) $(SITEMAP): TBLS = `find -L $(WEBDIRS) -name "*.tbl"`
$(TABLES) $(SITEMAP): $(TBLS) $(XHTBL)
@echo " XHTBL $(XHTBLOPTS) *.tbl"
$(H)$(XHTBL) $(XHTBLOPTS) -b $(LDWEBURL) -O $(XSLTDIR) $(TBLS)
# GENERATE LDW LDDL ##########################################################
$(LDWSTAMP):
$(H)touch $@
ldw: $(LDWSTAMP)
# GENERATE LDW IX LDDL #######################################################
$(LDWIXSTAMP): $(INDEX)
$(H)$(INDEX) -i $(LDDLDIR) -o $(HTMLDIR) .
$(H)touch $@
ldw-ix: $(LDWIXSTAMP)
##############################################################################
lint-xml: $(XMLS:%=$(XMLDIR)/%)
@echo XMLLINT --valid
$(H)$(XMLLINT) --valid $^
$(ETCDIR)/make_html.sh $(XMLDIR)/index.txt index:
@echo " GENERATE INDEXES"
$(H)find $(XMLDIR) -name "*.ld.xml" | sed s/.xml//g | sed s/xml/ld:/g > $(XMLDIR)/index.txt
$(H)sed "s/^/make --no-print-directory /" $(XMLDIR)/index.txt | sed s.ld:/.. > $(ETCDIR)/make_html.sh
$(DOWNDIR)/lddl.tar.bz2 lddl: $(ETCDIR)/exclude.txt $(XMLDIR)/index.txt
@echo " GENERATE lddl.tar.bz2"
$(H)tar -cjf $(DOWNDIR)/lddl.tar.bz2 -X $< $(XMLDIR)
install-xml: $(DOWNDIR)/lddl.tar.bz2
@echo " INSTALL xml"
$(H)scp $^ $(RDOWNDIR)
$(H)ssh $(REMOTE) "cd $(RDIR) && tar -xjf download/lddl.tar.bz2"
test-html:
@$(MAKE) --no-print-directory $(XMLS:%.xml=%)
# html: $(ETCDIR)/make_html.sh
# @echo " MAKE */*.ld"
# $(H). $<
install-jed: $(SLS:%=$(JEDDIR)/%)
@echo " INSTALL $(SLS)"
$(H)scp $^ $(DOWNDIR)
install-bib: $(BIB:%=$(BIBDIR)/%)
@echo " INSTALL $(BIB)"
$(H)scp $< $(DOWNDIR)
$(H)scp $< $(DOWNDIR)/$(BIB:%.bib=%.txt)
install-2: $(CONTRIB:%=$(CONTRIBDIR)/%)
@echo " INSTALL $(CONTRIB)"
$(H)scp $< $(DOWNDIR)
install-automath: $(HELENADIR)/$(AUTOMATH)
@echo " INSTALL $(notdir $<)"
$(H)scp $< $(DOWNDIR)
install-matita: $(MATITA:%=$(HELENADIR)/%)
@echo " INSTALL matita"
$(H)tar -C $(HELENADIR) -cjf $(DOWNDIR)/grundlagen_2.tar.bz2 $(MATITA)
install-1: etc/coq/ld_731/contrib/lambdadelta.tar.gz
@echo " INSTALL $<"
$(H)scp $< $(DOWNDIR)/lambdadelta_1.tar.gz
install-coq:
@echo " INSTALL coq"
$(H)ssh $(REMOTE) "cd $(RSTATICDIR)/coq && tar -xjf ../../../lambdadelta/download/lambdadelta_1A.tar.bz2 && . ../../../lambdadelta/etc/to_text.sh v"
install-v: $(HELENADIR)/$(COQ)
@echo " INSTALL $(notdir $<)"
$(H)scp $< $(DOWNDIR)
up-css:
@echo " UPDATE $(RHOMEDIR)/css/"
$(H)scp -q -r css $(RHOMEDIR)
up-images:
@echo " UPDATE $(RHOMEDIR)/images/"
$(H)scp -q -r images $(RHOMEDIR)
up-download:
@echo " UPDATE $(RHOMEDIR)/download/"
$(H)scp -q -r download $(RHOMEDIR)
#%.ld:
# @echo " XSLT $@"
# $(H)mkdir -p $(LDDLDIR)/$(@D)
# $(H)$(XSLT) --novalid $(XSLT_OUT) $(LDDLDIR)/$@.ldw.xml $(XSLT_XSL) $(XSLTDIR)/lddl.xsl $(XSLT_IN) $(XMLDIR)/$@.xml
.PHONY: $(TAGS)