Skip to content
Snippets Groups Projects
Verified Commit c4067654 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

moved stuff around

parent bc9773f8
No related branches found
No related tags found
No related merge requests found
Pipeline #36730 failed
......@@ -205,7 +205,43 @@ stars.o: *.h
vec.o: vec.h
```
# On peut faire mieux
# Le symbole `:=` vs `=` (1/2)
Deux façon (flavors) d'assigner des variables (voir [ce lien](https://www.gnu.org/software/make/manual/html_node/Flavors.html#Flavors)):
## Le symbole `=`
- Façon **récursive**:
```makefile
foo = $(bar)
bar = $(ugh)
ugh = Huh?
```
ici `foo` vaut `Huh?`.
- Valeurs remplacées "récursivement".
- Variables remplacées à chaque appel (lent + imprédictible!).
# Le symbole `:=` vs `=` (2/2)
Deux façon (flavors) d'assigner des variables (voir [ce lien](https://www.gnu.org/software/make/manual/html_node/Flavors.html#Flavors)):
## Le symbole `:=`
- Façon **simplement développée** (`Simply expanded variable`):
```makefile
x := foo
y := $(x) bar
x := later
```
ici `y` vaut `foo bar` et `x` vaut `later` (avec des `=`, `y` vaudrait `later bar`).
- Les variables se comportent comme en `C`.
- En particulier dans les *longs* `Makefile` le comportement est plus prédictible.
# Pour aller plus loin (pas ici...)
Il est possible de prendre **tous** les fichiers `.c`
......@@ -290,39 +326,3 @@ $(patsubst # Substitution de texte pour chaque
$(wildcard *.c)\ # Tous les fichiers .c
)
```
# Le symbole `:=` vs `=` (1/2)
Deux façon (flavors) d'assigner des variables (voir [ce lien](https://www.gnu.org/software/make/manual/html_node/Flavors.html#Flavors)):
## Le symbole `=`
- Façon **récursive**:
```makefile
foo = $(bar)
bar = $(ugh)
ugh = Huh?
```
ici `foo` vaut `Huh?`.
- Valeurs remplacées "récursivement".
- Variables remplacées à chaque appel (lent + imprédictible!).
# Le symbole `:=` vs `=` (2/2)
Deux façon (flavors) d'assigner des variables (voir [ce lien](https://www.gnu.org/software/make/manual/html_node/Flavors.html#Flavors)):
## Le symbole `:=`
- Façon **simplement développée** (`Simply expanded variable`):
```makefile
x := foo
y := $(x) bar
x := later
```
ici `y` vaut `foo bar` et `x` vaut `later` (avec des `=`, `y` vaudrait `later bar`).
- Les variables se comportent comme en `C`.
- En particulier dans les *longs* `Makefile` le comportement est plus prédictible.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment