# Makefile # Espace de recherche # @todo faire des cibles print et screen (par exemple) au lieu de all pour choisir # make [screen|print] PROJET=name ############################################################# # Aide ############################################################# # make # Recette par défaut, si aucune n’est mentionnée .DEFAULT_GOAL := aide # make aide # # Aide-mémoire .PHONY: aide aide: @cat aide.txt | ccze -A ############################################################# # 1. argument obligatoire en ligne de commande ############################################################# # Passer le nom du projet à traiter : avec la variable PROJET. # exemple  : $ make PROJET=proposition # remarques : variable à spécifier pour toutes les recettes # qui l'utilisent. # le nom du projet doit correspondre avec le nom # d’un dossier dans ./src/ ############################################################# # variables ############################################################# SHELL := /bin/bash # Timestamp # -05:00 date := $(shell date +%Y-%m-%dT%H:%M:%S-05:00) # -04:00 #date := $(shell date +%Y-%m-%dT%H:%M:%S-04:00) #hash := $(shell cat .git/refs/heads/main) # Name name = $(PROJET) # Variables pour les sources config_screen = ./src/config-screen.yml config_print = ./src/config-print.yml src_dir = ./src/$(name) src_files = $(shell ls $(src_dir)/*.md | grep -v -f exclure.txt) # Variables pour les extrants zip = ./archives/$(name).zip dist = ./dist/$(name) print = ./dist/$(name)/$(name).html ############################################################# # receipes ############################################################# # $(zip) est une dépendance de $(print) # c'est pourquoi $(zip) s'exécute avec build, avant $(print) .PHONY: build build: projet $(print) ############################################### # Validation # # Vérifier que le projet est indiqué explicitement # projet: $(src_dir)/* ifndef PROJET @echo "ERREUR : aucun projet sélectionné. Bye." @exit 1 endif ############################################### # Chunked # # Créer la version HTML pour l'écran # $(zip): $(src_dir)/* $(config_screen) pandoc $(src_files) \ --defaults $(config_screen) \ --metadata-file ./src/global-metadata.yml \ --metadata-file $(