Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.os.unix > #8049

Makefiles : questions diverses sur les variables

From Thomas <fantome.forums.tDeContes@free.fr.invalid>
Newsgroups fr.comp.os.unix
Subject Makefiles : questions diverses sur les variables
Date 2022-10-25 02:59 +0200
Message-ID <635734de$0$31552$426a74cc@news.free.fr> (permalink)
Organization Guest of ProXad - France

Show all headers | View raw


bonjour :-)



1)

dommage qu'on ne puisse pas avoir connaissance des variables/cible par 
'.VARIABLES', même pas dans un contexte de cible !
y a-t-il un autre moyen, ou va-t-il falloir deviner ?

dommage qu'on ne puisse pas obtenir la valeur des variables/cible par 
$(cible:VAR).
heureusement on peut y arriver dans un contexte de cible, comme ça :
cible : - := $(eval ... $(VAR) ...)



2)

j'ai remarqué que si on écrit :
VAR := $(info ...)
et ensuite on exécute :
make VAR=
le $(info ...) est évalué, alors que make a les moyens de savoir que VAR 
ne doit pas changer de valeur de toutes façons.

est-ce qu'il y a une norme qui dit qu'on est sur qu'il sera évalué tout 
le temps,
ou est-ce que dans ce cas de figure le comportement de make est 
incertain ?



3)

y a-t-il un moyen d'obtenir la liste des cibles qu'on a définies, quand 
on n'a pas utilisé .PHONY tout le temps ?

(je n'ai pas testé mais je pense pouvoir récupérer la liste des 
prerequis de .PHONY avec la même astuce que dans le 1).)



désolé pour l'ajout, j'espère que ça n'aura pas dérangé trop de monde.



4)

je n'arrive pas très bien à comprendre comment ca se passe quand on fait 
un ajout (avec +=) à une variable/cible (déjà définie au niveau global)


VAR := texte
cible : VAR += ajout

cible : - := $(info $(value VAR))
ne donne que 'ajout', pas 'texte'.

cible : - := $(info $(flavor VAR))
donne 'recursive' au lieu de 'simple', mais je ne vois pas de différence 
avec :
VAR := texte
cible : VAR = ajout

où est stockée l'info disant que la variable globale doit être 
concaténée au début, et est-elle accessible ?


si la variable globale est modifiée après la variable/cible, 
la variable/cible est mise à jour.

en plus, c'est une vraie variable récursive, avec évaluation plus tard, 
alors que VAR existe déjà (donc ça n'est pas très intuitif).

est-ce qu'il y a une norme qui dit que ça doit se passer comme ça, ou 
est-ce un "coup de chance" ?


et aussi, peut-on obtenir le même genre de mécanisme en concaténant la 
variable globale à la fin et/ou sans espace ?

-- 
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/

Back to fr.comp.os.unix | Previous | Next | Find similar | Unroll thread


Thread

Makefiles : questions diverses sur les variables Thomas <fantome.forums.tDeContes@free.fr.invalid> - 2022-10-25 02:59 +0200

csiph-web