mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
More typos
This commit is contained in:
parent
8cff05396e
commit
5220d97320
@ -37,24 +37,24 @@ l'implémentation standard : GNU make.
|
|||||||
|
|
||||||
# Une règle. Elle ne sera exécutée que si fichier0.txt n'existe pas.
|
# Une règle. Elle ne sera exécutée que si fichier0.txt n'existe pas.
|
||||||
fichier0.txt:
|
fichier0.txt:
|
||||||
echo "truc" > fichier0.txt
|
echo "truc" > fichier0.txt
|
||||||
# Même les commentaires sont transférés dans le terminal.
|
# Même les commentaires sont transférés dans le terminal.
|
||||||
|
|
||||||
# Cette règle ne sera exécutée que si fichier0.txt est plus récent que
|
# Cette règle ne sera exécutée que si fichier0.txt est plus récent que
|
||||||
# fichier1.txt.
|
# fichier1.txt.
|
||||||
fichier1.txt: fichier0.txt
|
fichier1.txt: fichier0.txt
|
||||||
cat fichier0.txt > fichier1.txt
|
cat fichier0.txt > fichier1.txt
|
||||||
# Utiliser la même syntaxe que dans un terminal.
|
# Utiliser la même syntaxe que dans un terminal.
|
||||||
@cat fichier0.txt >> fichier1.txt
|
@cat fichier0.txt >> fichier1.txt
|
||||||
# @ empêche l'affichage de la sortie texte d'une commande.
|
# @ empêche l'affichage de la sortie texte d'une commande.
|
||||||
-@echo 'hello'
|
-@echo 'hello'
|
||||||
# - signifie que la règle devrait continuer à s'exécuter si cette commande
|
# - signifie que la règle devrait continuer à s'exécuter si cette commande
|
||||||
# échoue.
|
# échoue.
|
||||||
|
|
||||||
# Une règle peut avoir plusieurs cibles et plusieurs dépendances.
|
# Une règle peut avoir plusieurs cibles et plusieurs dépendances.
|
||||||
fichier2.txt fichier3.txt: fichier0.txt fichier1.txt
|
fichier2.txt fichier3.txt: fichier0.txt fichier1.txt
|
||||||
touch fichier2.txt
|
touch fichier2.txt
|
||||||
touch fichier3.txt
|
touch fichier3.txt
|
||||||
|
|
||||||
# Make affichera un avertissement si le makefile comporte plusieurs règles pour
|
# Make affichera un avertissement si le makefile comporte plusieurs règles pour
|
||||||
# une même cible. Cependant les règles vides ne comptent pas, et peuvent être
|
# une même cible. Cependant les règles vides ne comptent pas, et peuvent être
|
||||||
@ -71,7 +71,7 @@ all: maker process
|
|||||||
|
|
||||||
# La déclaration des règles peut être faite dans n'importe quel ordre.
|
# La déclaration des règles peut être faite dans n'importe quel ordre.
|
||||||
maker:
|
maker:
|
||||||
touch ex0.txt ex1.txt
|
touch ex0.txt ex1.txt
|
||||||
|
|
||||||
# On peut transformer une règle en fausse règle grâce à la cible spéciale
|
# On peut transformer une règle en fausse règle grâce à la cible spéciale
|
||||||
# suivante :
|
# suivante :
|
||||||
@ -89,17 +89,17 @@ ex0.txt ex1.txt: maker
|
|||||||
|
|
||||||
# Utilise un wildcard pour des noms de fichier
|
# Utilise un wildcard pour des noms de fichier
|
||||||
process: fichier*.txt
|
process: fichier*.txt
|
||||||
@echo $^ # $^ est une variable contenant la liste des dépendances de la
|
@echo $^ # $^ est une variable contenant la liste des dépendances de la
|
||||||
# cible actuelle.
|
# cible actuelle.
|
||||||
@echo $@ # $@ est le nom de la cible actuelle. En cas de cibles
|
@echo $@ # $@ est le nom de la cible actuelle. En cas de cibles
|
||||||
# multiples, $@ est le nom de la cible ayant causé l'exécution
|
# multiples, $@ est le nom de la cible ayant causé l'exécution
|
||||||
# de cette règle.
|
# de cette règle.
|
||||||
@echo $< # $< contient la première dépendance.
|
@echo $< # $< contient la première dépendance.
|
||||||
@echo $? # $? contient la liste des dépendances qui ne sont pas à jour.
|
@echo $? # $? contient la liste des dépendances qui ne sont pas à jour.
|
||||||
@echo $+ # $+ contient la liste des dépendances avec d'éventuels
|
@echo $+ # $+ contient la liste des dépendances avec d'éventuels
|
||||||
# duplicatas, contrairement à $^.
|
# duplicatas, contrairement à $^.
|
||||||
@echo $| # $| contient la liste des cibles ayant préséance sur la cible
|
@echo $| # $| contient la liste des cibles ayant préséance sur la cible
|
||||||
# actuelle.
|
# actuelle.
|
||||||
|
|
||||||
# Même si la définition de la règle est scindée en plusieurs morceaux, $^
|
# Même si la définition de la règle est scindée en plusieurs morceaux, $^
|
||||||
# listera toutes les dépendances indiquées.
|
# listera toutes les dépendances indiquées.
|
||||||
@ -113,33 +113,33 @@ process: ex1.txt fichier0.txt
|
|||||||
# En utilisant le pattern matching, on peut par exemple créer des règles pour
|
# En utilisant le pattern matching, on peut par exemple créer des règles pour
|
||||||
# convertir les fichiers d'un certain format dans un autre.
|
# convertir les fichiers d'un certain format dans un autre.
|
||||||
%.png: %.svg
|
%.png: %.svg
|
||||||
inkscape --export-png $^
|
inkscape --export-png $^
|
||||||
|
|
||||||
# Make exécute une règle même si le fichier correspondant est situé dans un sous
|
# Make exécute une règle même si le fichier correspondant est situé dans un sous
|
||||||
# dossier. En cas de conflit, la règle avec la meilleure correspondance est
|
# dossier. En cas de conflit, la règle avec la meilleure correspondance est
|
||||||
# choisie.
|
# choisie.
|
||||||
small/%.png: %.svg
|
small/%.png: %.svg
|
||||||
inkscape --export-png --export-dpi 30 $^
|
inkscape --export-png --export-dpi 30 $^
|
||||||
|
|
||||||
# Dans ce type de conflit (même cible, même dépendances), make exécutera la
|
# Dans ce type de conflit (même cible, même dépendances), make exécutera la
|
||||||
# dernière règle déclarée...
|
# dernière règle déclarée...
|
||||||
%.png: %.svg
|
%.png: %.svg
|
||||||
@echo cette règle est choisie
|
@echo cette règle est choisie
|
||||||
|
|
||||||
# Dans ce type de conflit (même cible mais pas les mêmes dépendances), make
|
# Dans ce type de conflit (même cible mais pas les mêmes dépendances), make
|
||||||
# exécutera la première règle pouvant être exécutée.
|
# exécutera la première règle pouvant être exécutée.
|
||||||
%.png: %.ps
|
%.png: %.ps
|
||||||
@echo cette règle n\'est pas choisie si *.svg et *.ps sont présents
|
@echo cette règle n\'est pas choisie si *.svg et *.ps sont présents
|
||||||
|
|
||||||
# Make a des règles pré établies. Par exemple, il sait comment créer la cible
|
# Make a des règles pré établies. Par exemple, il sait comment créer la cible
|
||||||
# *.o à partir de *.c.
|
# *.o à partir de *.c.
|
||||||
|
|
||||||
# Les makefiles plus vieux utilisent un matching par extension de fichier.
|
# Les makefiles plus vieux utilisent un matching par extension de fichier.
|
||||||
.png.ps:
|
.png.ps:
|
||||||
@echo cette règle est similaire à une règle par pattern matching
|
@echo cette règle est similaire à une règle par pattern matching
|
||||||
|
|
||||||
# Utiliser cette syntaxe pour déclarer une règle comme règle avec matching par
|
# Utiliser cette règle spéciale pour déclarer une règle comme ayant un
|
||||||
# extension de fichier.
|
# matching par extension de fichier.
|
||||||
.SUFFIXES: .png
|
.SUFFIXES: .png
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
@ -152,10 +152,10 @@ variable = Ted
|
|||||||
variable2="Sarah"
|
variable2="Sarah"
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
@echo $(variable)
|
@echo $(variable)
|
||||||
@echo ${variable2}
|
@echo ${variable2}
|
||||||
@echo $variable # Cette syntaxe signifie $(n)ame et non pas $(variable) !
|
@echo $variable # Cette syntaxe signifie $(n)ame et non pas $(variable) !
|
||||||
@echo $(variable3) # Les variables non déclarées valent "" (chaîne vide).
|
@echo $(variable3) # Les variables non déclarées valent "" (chaîne vide).
|
||||||
|
|
||||||
# Les variables sont déclarées de 4 manières, de la plus grande priorité à la
|
# Les variables sont déclarées de 4 manières, de la plus grande priorité à la
|
||||||
# plus faible :
|
# plus faible :
|
||||||
@ -177,21 +177,21 @@ variable4 +=gris
|
|||||||
# Assignations de variable pour les règles correspondant à un pattern
|
# Assignations de variable pour les règles correspondant à un pattern
|
||||||
# (spécifique à GNU make).
|
# (spécifique à GNU make).
|
||||||
*.png: variable2 = Sara # Pour toutes les règles correspondant à *.png, et tous
|
*.png: variable2 = Sara # Pour toutes les règles correspondant à *.png, et tous
|
||||||
# leurs descendants, la variable variable2 vaudra
|
# leurs descendants, la variable variable2 vaudra
|
||||||
# "Sara".
|
# "Sara".
|
||||||
# Si le jeux des dépendances et descendances devient vraiment trop compliqué,
|
# Si le jeux des dépendances et descendances devient vraiment trop compliqué,
|
||||||
# des inconsistances peuvent survenir.
|
# des incohérences peuvent survenir.
|
||||||
|
|
||||||
# Certaines variables sont prédéfinies par make :
|
# Certaines variables sont prédéfinies par make :
|
||||||
affiche_predefinies:
|
affiche_predefinies:
|
||||||
echo $(CC)
|
echo $(CC)
|
||||||
echo ${CXX}
|
echo ${CXX}
|
||||||
echo $(FC)
|
echo $(FC)
|
||||||
echo ${CFLAGS}
|
echo ${CFLAGS}
|
||||||
echo $(CPPFLAGS)
|
echo $(CPPFLAGS)
|
||||||
echo ${CXXFLAGS}
|
echo ${CXXFLAGS}
|
||||||
echo $(LDFLAGS)
|
echo $(LDFLAGS)
|
||||||
echo ${LDLIBS}
|
echo ${LDLIBS}
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
# Variables : le retour
|
# Variables : le retour
|
||||||
@ -202,11 +202,11 @@ affiche_predefinies:
|
|||||||
# manière d'assigner des variables pour qu'elles ne soient évaluées qu'une seule
|
# manière d'assigner des variables pour qu'elles ne soient évaluées qu'une seule
|
||||||
# fois seulement.
|
# fois seulement.
|
||||||
|
|
||||||
var := wesh
|
var := A B C
|
||||||
var2 ::= $(var) mec # := et ::= sont équivalents.
|
var2 ::= $(var) D E F # := et ::= sont équivalents.
|
||||||
|
|
||||||
# Ces variables sont évaluées procéduralement (i.e. dans leur ordre
|
# Ces variables sont évaluées procéduralement (i.e. dans leur ordre
|
||||||
# d'apparition), contrairement au règles par exemple !
|
# d'apparition), contrairement aux règles par exemple !
|
||||||
|
|
||||||
# Ceci ne fonctionne pas.
|
# Ceci ne fonctionne pas.
|
||||||
var3 ::= $(var4) et fais de beaux rêves
|
var3 ::= $(var4) et fais de beaux rêves
|
||||||
@ -225,9 +225,9 @@ fichiers_source = $(wildcard *.c */*.c)
|
|||||||
fichiers_objet = $(patsubst %.c,%.o,$(fichiers_source))
|
fichiers_objet = $(patsubst %.c,%.o,$(fichiers_source))
|
||||||
|
|
||||||
ls: * src/*
|
ls: * src/*
|
||||||
@echo $(filter %.txt, $^)
|
@echo $(filter %.txt, $^)
|
||||||
@echo $(notdir $^)
|
@echo $(notdir $^)
|
||||||
@echo $(join $(dir $^),$(notdir $^))
|
@echo $(join $(dir $^),$(notdir $^))
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
# Directives
|
# Directives
|
||||||
@ -240,14 +240,14 @@ include meuh.mk
|
|||||||
sport = tennis
|
sport = tennis
|
||||||
report:
|
report:
|
||||||
ifeq ($(sport),tennis) # Il y a aussi ifneq.
|
ifeq ($(sport),tennis) # Il y a aussi ifneq.
|
||||||
@echo 'jeu, set et match'
|
@echo 'jeu, set et match'
|
||||||
else
|
else
|
||||||
@echo "C'est pas ici Wimbledon ?"
|
@echo "C'est pas ici Wimbledon ?"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
truc = true
|
truc = true
|
||||||
ifdef $(truc) # Il y a aussi ifndef.
|
ifdef $(truc) # Il y a aussi ifndef.
|
||||||
machin = 'salut'
|
machin = 'salut'
|
||||||
endif
|
endif
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user