############################################################################################## # # Fichier # Makefile # DESCRIPTION # Ce fichier est utilise pour: # # - compiler les programmes du tp #02 # - archiver les fichiers avant la remise electronique # - faire la remise electronique # - verifier que la remise a bien eu lieu # # Auteur # Mohamed Lokbani, 02 février 2005, pour IFT1166, TP #02. # # - le .cshrc dont le path n'a pas été reconfiguré afin de pointer # d'abord le répertoire courant au moment de l'execution des programmes. # Pour palier à ce probleme, nous avons introduit ./ à coté de chaque programme # exécutable. # # # - écriture "élémentaire", on a évité par exemple d'utiliser les macros spéciales pour # ne pas brouiller les pistes! # # v1.01 ajuster une veille sauce ...... # # Comment l'utiliser # # make non_de_la_cible # # cibles possibles: # # prg data motcache Gotp2 # verif1 verif2 verif3 verifAll # all from_scratch # safeclean clean # archive verifarchive # # # Respecter l'ordre de la compilation. # # ------------------------------------------------------------------------------- # # Les cibles: # -1- Compiler dans une seule opération tous les fichiers: # make prg # ou # make all # # -2- Compiler que le fichier data.cpp: # make data # # -3- Compiler que le fichier motcache.cpp: # make motcache # # -4- Compiler tp2H05 et générer l'exécutable (équivaut à -1-): # make gotp2 # # -5- À tout moment vous pouvez effacer les fichiers objets ou exécutables # créés avec la commande: # make clean # # -6- Pour un effacement propre (avec sauvegarde des vieux fichiers): # make safeclean # # -7- Pour comparer les résultats obtenus avec ceux fournis: # 1er Test => make verif1 # 2e Test => make verif2 # 3e Test => make verif3 # Tous les Tests => make verifAll # # -8- Pour archiver vos fichiers et vérifier que l'opération a été correctement exécutée: # make archive (et) make verifarchive # # # ------------------------------------------------------------------------------- ## # # Des questions? # # - durant les demonstrations, pratiques libres, pause durant le cours. # # # Commentaires en +: # # Makefile pour systemes UNIX (Windows/MinGW-MSYS, Linux ou Solaris) uniquement. # # Meme s'il est deconseillé, vous pouvez bricoler le contenu de ce fichier si ca vous chante! # # ############################################################################################## #------------- # variables globales # les flags utlises par le compilateur MESFLAGS = -Wall -pedantic -Os -I/. -L./ PROGRAMMES = data motcache Gotp2 #------------- # cibles potentielles prg: $(PROGRAMMES) #------------- # descritpion ... # pour fichier data.cpp data: data.cpp data.h g++ -c data.cpp $(MESFLAGS) # pour fichier motcache.cpp motcache: motcache.cpp motcache.h g++ -c motcache.cpp $(MESFLAGS) # pour le fichier exécutable Gotp2: tp2H05.cpp motcache.h g++ -o tp2.exe tp2H05.cpp $(MESFLAGS) data.o motcache.o # verification que les sorties coincident verif1: make Gotp2 ./tp2.exe grille.txt mots.txt > masortie.txt diff -b -w -i -B masortie.txt resultat.txt verif2: make Gotp2 ./tp2.exe g2.txt m2.txt > masortie2.txt diff -b -w -i -B masortie2.txt r2.txt verif3: make Gotp2 ./tp2.exe g3.txt m3.txt > masortie3.txt diff -b -w -i -B masortie3.txt r3.txt verifAll: make Gotp2 ./tp2.exe grille.txt mots.txt > masortie.txt diff -b -w -i -B masortie.txt resultat.txt ./tp2.exe g2.txt m2.txt > masortie2.txt diff -b -w -i -B masortie2.txt r2.txt ./tp2.exe g3.txt m3.txt > masortie3.txt diff -b -w -i -B masortie3.txt r3.txt # cible globale all: $(PROGRAMMES) # faire le menage afin de provoquer une autre compilation # sans danger ... je fais une copie ds le repertoire masauvegarde # Attention une seule copie est permise safeclean: install -d masauvegarde install -m0604 motcache.cpp motcache.o tp2.exe masauvegarde make clean # attention commande dangeureuse ... clean: \rm -f tp2H05.o data.o motcache.o tp2.exe from_scratch: clean all # le boulot est fait? alors on archive ... # Attention, ajouter ici le nom de votre rapport archive: make all tar -zcvf tp2.tar.gz motcache.h motcache.cpp monrapport # on verifie que l'archivage a bien eu lieu, en generant la table verifarchive: make archive tar -tzvf tp2.tar.gz