This repository has been archived on 2024-05-19. You can view files and clone it, but cannot push or open issues or pull requests.
l-systems/Makefile
2024-05-05 19:19:41 +02:00

54 lines
1.5 KiB
Makefile

CONVERTER = python converter.py
VALIDATE = xmllint --schema
SAXON = java -jar $(wildcard saxon*.jar)
RM = rm
ECHO = echo -e
CURL = curl --location
UNZIP = unzip
SYSTEMS = l-systems
TORTUE = tortue
TRACEUR = traceur
SVG = svg
EXPORT = image
all: generation tortue traceur svg
# Generation du fichier XML des L-systèmes
generation:
$(CONVERTER) $(SYSTEMS).csv -o $(SYSTEMS).xml
$(VALIDATE) $(SYSTEMS).xsd $(SYSTEMS).xml 1>/dev/null
# Génération du fichier XML de la tortue + vérification
tortue:
ifeq ($(and $(nom),$(n)),)
@$(ECHO) "Il manque des arguments, par exemple :\n" \
" make $(MAKECMDGOALS) nom=snow n=3"
@false
endif
$(SAXON) -s:$(SYSTEMS).xml -xsl:$(TORTUE).xsl -o:$(TORTUE).xml nom=$(nom) n=$(n)
$(VALIDATE) $(TORTUE).xsd $(TORTUE).xml 1>/dev/null
# Génération du fichier XML du traceur + vérification
traceur:
$(SAXON) -s:$(TORTUE).xml -xsl:$(TRACEUR).xsl -o:$(TRACEUR).xml
$(VALIDATE) $(TRACEUR).xsd $(TRACEUR).xml 1>/dev/null
# Génération du fichier SVG
svg:
$(SAXON) -s:$(TRACEUR).xml -xsl:$(SVG).xsl -o:$(EXPORT).svg
# Supprime les fichiers générés
clean:
-$(RM) $(SYSTEMS).xml $(TORTUE).xml $(TRACEUR).xml $(EXPORT).svg
# Télécharge Saxon
SAXON_VER = 10.9
saxon:
$(eval $version = $(subst .,-,$(SAXON_VER)))
$(eval $zipfile = saxon.zip)
$(CURL) https://github.com/Saxonica/Saxon-HE/releases/download/SaxonHE$($version)/SaxonHE$($version)J.zip \
> $($zipfile)
$(UNZIP) -j $($zipfile) saxon-he-$(SAXON_VER).jar
$(RM) $($zipfile)