metanorma/metanorma-iso

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
SRC  := $(wildcard draft-*.adoc)
TXT  := $(patsubst %.adoc,%.txt,$(SRC))
XML  := $(patsubst %.adoc,%.xml,$(SRC))
HTML := $(patsubst %.adoc,%.html,$(SRC))
NITS := $(patsubst %.adoc,%.nits,$(SRC))

SHELL := /bin/bash
# Ensure the xml2rfc cache directory exists locally
IGNORE := $(shell mkdir -p $(HOME)/.cache/xml2rfc)

TRANG_RELEASE := https://github.com/relaxng/jing-trang/releases/download/V20181222/trang-20181222.zip
TOOLS_DIR := ${CURDIR}/tools
TRANG_JAR := $(TOOLS_DIR)/trang.jar
XSDVIPATH := $(TOOLS_DIR)/xsdvi.jar
XSLT_FILE := $(TOOLS_DIR)/xs3pxsl
XSLT_FILE_MERGE := $(TOOLS_DIR)/xsdmerge.xsl
RNG_FILE_SRC := lib/metanorma/iso/isostandard.rng
XSD_FILE_DEST := ${CURDIR}/xsd_doc/isostandard.xsd

all: $(TXT) $(HTML) $(XML) $(NITS)

clean:
    rm -f $(TXT) $(HTML) $(XML)

%.xml: %.adoc
    #bundle exec asciidoctor -r ./lib/glob-include-processor.rb -r asciidoctor-rfc -b rfc2 $^ --trace > $@
    bundle exec asciidoctor -r ./lib/glob-include-processor.rb -r asciidoctor-rfc -b rfc2 -a flush-biblio=true $^ --trace > $@

%.xml3: %.adoc
    #bundle exec asciidoctor -r ./lib/glob-include-processor.rb -r asciidoctor-rfc -b rfc2 $^ --trace > $@
    bundle exec asciidoctor -r ./lib/glob-include-processor.rb -r asciidoctor-rfc -b rfc3 -a flush-biblio=true $^ --trace > $@

%.txt: %.xml
    xml2rfc --text $^ $@

%.html: %.xml
    xml2rfc --html $^ $@

%.nits: %.txt
    VERSIONED_NAME=`grep :name: $*.adoc | cut -f 2 -d ' '`; \
    cp $^ $${VERSIONED_NAME}.txt && \
    idnits --verbose $${VERSIONED_NAME}.txt > $@ && \
    cp $@ $${VERSIONED_NAME}.nits && \
    cat $${VERSIONED_NAME}.nits

open:
    open *.txt


$(XSDVIPATH):
    mkdir -p $(dir $@); \
    curl -sSL https://sourceforge.net/projects/xsdvi/files/latest/download > $(dir $@)/xsdvi.zip; \
    unzip -p $(dir $@)/xsdvi.zip dist/lib/xercesImpl.jar > $(dir $@)/xercesImpl.jar; \
    curl -sSL https://github.com/metanorma/xsdvi/releases/download/v1.0/xsdvi-1.0.jar > $@

$(XSLT_FILE):
    mkdir -p $(dir $@)
    curl -sSL https://raw.githubusercontent.com/metanorma/xs3p/main/xsl/xs3p.xsl > $@

$(XSLT_FILE_MERGE):
    mkdir -p $(dir $@)
    curl -sSL https://raw.githubusercontent.com/metanorma/xs3p/main/xsl/xsdmerge.xsl > $@

$(TRANG_JAR):
    mkdir -p $(dir $@); \
    cd $(dir $@); \
    curl -sSL $(TRANG_RELEASE) > trang.zip; \
     unzip -p trang.zip trang-20181222/trang.jar > $@


$(XSD_FILE_DEST): $(TRANG_JAR)
    mkdir -p $(dir $@); \
    java -jar $< $(RNG_FILE_SRC) $@

xsd_doc:  $(XSD_FILE_DEST) $(XSDVIPATH) $(XSLT_FILE) $(XSLT_FILE_MERGE)
    mkdir -p $@/diagrams; \
    cd $@; \
    java -jar $(XSDVIPATH) $< -rootNodeName all -oneNodeOnly -outputPath diagrams; \
    xsltproc --nonet --stringparam rootxsd iso-standard --output $@.tmp $(XSLT_FILE_MERGE) $<;\
    xsltproc --nonet --param title "'Metanorma XML Schema Documentation, ISO Standard'" \
        --output index.html $(XSLT_FILE) $@.tmp;\
    rm $@.tmp