User Tools

Site Tools


projtec:make

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projtec:make [2020/09/15 20:31] – [Makefile] orelprojtec:make [2024/03/18 15:06] (current) – external edit 127.0.0.1
Line 96: Line 96:
  
 Plus d'info sur les régles implicites : https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html#Catalogue-of-Rules Plus d'info sur les régles implicites : https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html#Catalogue-of-Rules
 +
 +==== Pour aller un peu plus loin ====
  
 L'écriture des dépendances peut être fastidieux dans un gros projet, on peut alors utiliser la commande "gcc -MM" L'écriture des dépendances peut être fastidieux dans un gros projet, on peut alors utiliser la commande "gcc -MM"
Line 138: Line 140:
 Dans ce cas, il faut commencer par faire "make dep" pour générer le fichier des dépendances, puis après on peut faire "make". Il faut penser à remettre à jour les dépendances avec "make dep" quand on ajoute de nouveaux fichiers ou que l'on modifie les //includes// ! Dans ce cas, il faut commencer par faire "make dep" pour générer le fichier des dépendances, puis après on peut faire "make". Il faut penser à remettre à jour les dépendances avec "make dep" quand on ajoute de nouveaux fichiers ou que l'on modifie les //includes// !
  
-==== Pour aller un peu plus loin ====+==== Pour aller encore plus loin ====
  
 //Parler de Makefile recursif avec "make -C subdir" ; parler des fonctions %%$%%(wildcard *.c) ; etc.// //Parler de Makefile recursif avec "make -C subdir" ; parler des fonctions %%$%%(wildcard *.c) ; etc.//
Line 146: Line 148:
 SOURCES  := $(wildcard *.c) SOURCES  := $(wildcard *.c)
 INCLUDES := $(wildcard *.h) INCLUDES := $(wildcard *.h)
-OBJECTS  := $(SOURCES:.c=*.o)+OBJECTS  := $(SOURCES:.c=.o)
 </code> </code>
  
 +
 +==== Nota Bene ====
 +
 +//Quelques astuces...//
 +
 +  * @ suppresses the normal 'echo' of the command that is executed.
 +  * - means ignore the exit status of the command that is executed (normally, a non-zero exit status would stop that part of the build).
 +  * + means 'execute this command under make -n' (or 'make -t' or 'make -q') when commands are not normally executed. See also the POSIX specification for make and also §9.3 of the GNU Make manual.
 +
 +Plus d'info : https://stackoverflow.com/questions/3477292/what-do-and-do-as-prefixes-to-recipe-lines-in-make
  
  
projtec/make.1600201869.txt.gz · Last modified: 2024/03/18 15:05 (external edit)