makefile

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
makefile [2021/12/06 13:01] – [Makefile] add using tabs phswmakefile [2024/02/24 18:50] (Version actuelle) – [Makefile] add link phsw
Ligne 2: Ligne 2:
  
   * [[https://gl.developpez.com/tutoriel/outil/makefile/]]   * [[https://gl.developpez.com/tutoriel/outil/makefile/]]
 +  * [[https://renenyffenegger.ch/notes/development/make/index]]
 +  * [[https://connect.ed-diamond.com/GNU-Linux-Magazine/glmf-247/c-est-l-histoire-d-un-make...|C’est l’histoire d’un make…]]
  
 Les commandes sont à indenter avec des tabulations. Les commandes sont à indenter avec des tabulations.
Ligne 17: Ligne 19:
 </code> </code>
  
-Mode verbeux natif de make: jouer avec l'option ''--debug|-d''.+Mode verbeux natif de make: jouer avec l'option ''%%--%%debug|-d''.
  
  
Ligne 49: Ligne 51:
   * ''$^'': toutes les dépendances   * ''$^'': toutes les dépendances
   * ''$?'': liste des dépendances plus récentes que la cible   * ''$?'': liste des dépendances plus récentes que la cible
 +
 +
 +
 +==== Règles conditionnelles ====
 +
 +[[https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_7.html|Source]]
 +
 +<code make>
 +target:
 +ifeq ($(ENV_VAR), 1)
 + # Something
 +else
 + # Another thing
 +endif
 +</code>
 +
 +
 +==== Éliminer l'extension d'une cible ====
 +
 +Il suffit d'utiliser la commande ''basename'' provenant de coreutils ([[https://stackoverflow.com/questions/13995906/get-filename-without-extension-within-makefile|source]]) :
 +<code make>
 +RR-babla.pdf: rr.tex
 + rubber --pdf --jobname $(basename $@) $<  # rubber adds itself the .pdf extension to the output file
 +</code>
 +
 +
 +==== Appeler une commande dans une règle ====
 +
 +<code make>
 +foo:
 +    echo $(shell date)
 +</code>
  • makefile.1638792093.txt.gz
  • Dernière modification : 2021/12/06 13:01
  • de phsw