+SHELL := $(shell which bash)
H=@
-TAGS = www up \
+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-matita \
+ install-automath install-v install-matita \
-LDURL = http://lambdadelta.info/
+TAGS = up-html up-html-ix up-home html html-ix home ldw ldw-ix install-2
-HOMEDIR = .
+LDWEBURL = http://helm.cs.unibo.it/lambdadelta/
+
+SITEDIR = html
+HTMLDIR = html/lddl
+SRCDIR = web/home
+LDDLDIR = web/lddl
ETCDIR = etc
+XHTBLDIR = $(ETCDIR)/lambdadelta/bin/xhtbl
+INDEXDIR = $(ETCDIR)/lambdadelta/bin/index
DOWNDIR = download
XSLTDIR = xslt
XMLDIR = xml
-SRCDIR = web/home
-LDDLDIR = web/lddl
-XHTBLDIR = bin/xhtbl
-HTMLDIR = static/lddl
JEDDIR = $(HOME)/mps/jed
BIBDIR = $(HOME)/texmf/bibtex/bib
CONTRIBDIR = $(ETCDIR)/lambdadelta
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/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
+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 = xalan
+XSLT = xsltproc
XHTBL = $(XHTBLDIR)/xhtbl.native
+INDEX = $(INDEXDIR)/index.native
+
+XHTBLOPTS =
ifeq ($(XSLT), xsltproc)
XSLT_PARAM := --param
XSLT += -indent 2
endif
-XSLT += $(XSLT_PARAM) baseurl '"$(LDURL)"' $(XSLT_PARAM) date '"$(shell date -R)"'
+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 -not -name index.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 $@
+
+html: $(HTMLSTAMP)
+
+# GENERATE HTML IX LDDL ######################################################
-define HTML_TEMPLATE
- HTML_$(2) = $$(HOMEDIR)/$(2).html
- HTMLS += $$(HTML_$(2))
+$(HTMLIXSTAMP): LDWS = `find $(LDDLDIR) -name index.ldw.xml`
- $$(HTML_$(2)): $(1) $$(XSLS) $$(LDWEB:%=$$(XSLTDIR)/%)
- @echo " XSLT $$(notdir $$<)"
- $$(H)$$(XSLT) $$(XSLT_OUT) $$@ $$(XSLT_XSL) $$(XSLTDIR)/ld_web.xsl $$(XSLT_IN) $$<
-endef
+$(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 $@
-ifeq ($(MAKECMDGOALS), www)
- LDWS = $(shell find -L $(WEBDIRS) -name "*.ldw.xml")
- TBLS = $(shell find -L $(WEBDIRS) -name "*.tbl")
- XSLS = $(addprefix $(XSLTDIR)/,xhtbl.xsl $(notdir $(TBLS:%.tbl=%.xsl)))
+html-ix: $(HTMLIXSTAMP)
- $(XSLS): $(TBLS) $(XHTBL)
- @echo " XHTBL *.tbl"
- $(H)$(XHTBL) -b $(LDURL) -O $(XSLTDIR) $(TBLS)
+# GENERATE HTML HOME #########################################################
- $(foreach LDW,$(LDWS),$(eval $(call HTML_TEMPLATE,$(LDW),$(notdir $(LDW:%.ldw.xml=%)))))
+ifeq ($(MAKECMDGOALS),home)
+ LDWS = $(shell find -L $(WEBDIRS) -name *.ldw.xml)
endif
-all: www
+$(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 $@
-www: $(HTMLS) $(TBLS) $(XHTBL)
+home: $(HOMESTAMP)
+
+# GENERATE XSL ###############################################################
+
+TBLS = $(shell 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)
+
+# INSTALL λδ-2 PACKAGES ######################################################
+
+install-2: PKGS = $(shell find -L $(CONTRIBDIR) -name lambdadelta_*.tar.bz2)
+
+install-2: $(PKGS)
+ @echo " INSTALL $(PKGS:$(CONTRIBDIR)/lambdadelta_%.tar.bz2=%)"
+ $(H)scp $(PKGS) $(DOWNDIR)
+ $(H)$(RM) $(PKGS)
+
+##############################################################################
lint-xml: $(XMLS:%=$(XMLDIR)/%)
@echo XMLLINT --valid
- $(H)$(XMLLINT) --valid $^
+ $(H)$(XMLLINT) --valid $^
-$(ETCDIR)/make-html.sh $(XMLDIR)/index.txt index:
+$(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)
+ $(H)tar -cjf $(DOWNDIR)/lddl.tar.bz2 -X $< $(XMLDIR)
-install-xml: $(DOWNDIR)/lddl.tar.bz2
+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-html $(DOWNDIR)/static_lddl.tar.bz2: $(ETCDIR)/exclude.txt $(ETCDIR)/make_html.sh
- @echo " INSTALL html"
- $(H)tar -cjf $(DOWNDIR)/static_lddl.tar.bz2 -C static -X $< lddl
- $(H)scp $(DOWNDIR)/static_lddl.tar.bz2 $(RDOWNDIR)
- $(H)ssh $(REMOTE) "cd $(RSTATICDIR) && tar -xjf ../../lambdadelta/download/static_lddl.tar.bz2
+# html: $(ETCDIR)/make_html.sh
+# @echo " MAKE */*.ld"
+# $(H). $<
install-jed: $(SLS:%=$(JEDDIR)/%)
@echo " INSTALL $(SLS)"
$(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)
@echo " INSTALL matita"
$(H)tar -C $(HELENADIR) -cjf $(DOWNDIR)/grundlagen_2.tar.bz2 $(MATITA)
-install-1: $(HOME)/coq/ld_731/contrib/lambdadelta.tar.gz
+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 -xzf ../../../lambdadelta/download/lambdadelta_1.tar.gz && . ../../../lambdadelta/etc/to_text.sh v"
+ $(H)ssh $(REMOTE) "cd $(RSTATICDIR)/coq && tar -xjf ../../../lambdadelta/download/lambdadelta_1A.tar.bz2 && . ../../../lambdadelta/etc/to_text.sh v"
-up:
- @echo " UPDATE $(RHOMEDIR)"
- $(H)ssh $(REMOTE) "svn up $(RDIR)"
+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)
-%.ld:
- @echo " XSLT $@"
- $(H)mkdir -p $(LDDLDIR)/$(@D)
- $(H)$(XSLT) $(XSLT_OUT) $(LDDLDIR)/$@.ldw.xml $(XSLT_XSL) $(XSLTDIR)/lddl.xsl $(XSLT_IN) $(XMLDIR)/$@.xml
- $(H)mkdir -p $(HTMLDIR)/$(@D)
- $(H)$(XSLT) $(XSLT_OUT) $(HTMLDIR)/$@.html $(XSLT_XSL) $(XSLTDIR)/ld_web.xsl $(XSLT_IN) $(LDDLDIR)/$@.ldw.xml
+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)
+
+.SUFFIXES: