Newer
Older
cours-unix-shell / UnixShell_cours2018 / makefile
# -*- makefile -*-
# $Id: makefile,v 1.3 2003/07/02 12:53:32 parmentf Exp $
# Corrigé du TP sur make.

# la règle "all" dépend du fichier compte.txt et des
# règles bonjour, clean et bye.
# le "@" devant "echo" rend la commande "silencieuse", elle n'apparaît
# pas sur la sortie standard.
all: bonjour compte.txt clean bye
	@echo --- Make all: exécuté ---

# en tapant "make clean", on supprime les fichiers finissant par ~ ou
# .o
clean:
	rm -f *~ *.o
	@echo ---- Make clean: exécuté ---

# en tapant "make bonjour", on obtient le message suivant
bonjour:
	@echo "Bonjour, comment ça va?"
	@echo ---- Make bonjour: exécuté ---

# idem avec "make bye"
bye:
	@echo "À bientôt!"
	@echo ---- Make bye: exécuté ---

# le fichier modif.txt dépend du contenu du fichier original.txt
modif.txt: original.txt
	sed -e 's/ILIB/DILIB/g' < original.txt > modif.txt
	@echo ---- Make modif.txt: exécuté ---

# le fichier modif2.txt dépend des contenus des fichiers original.txt
# et table.sed (si l'un des deux est modifié, la commande sed sera
# exécutée).
modif2.txt: original.txt table.sed
	sed -f table.sed < original.txt > modif2.txt
	@echo ---- Make modif2.txt: exécuté ---

# le fichier compte.txt dépend du fichier modif2.txt (donc de sa
# règle, qui dépend de original.txt et de table.sed). Donc si on
# modifie table.sed et qu'on tape "make compte.txt", ou toute autre
# règle qui dépend directement ou indirectement de table.sed,
# cette règle sera exécutée.
compte.txt: modif2.txt
	wc -l < modif2.txt > compte.txt
	@echo ---- Make compte.txt: exécuté ---