Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-b.proxad.net!nnrp1-2.free.fr!not-for-mail From: Thomas Newsgroups: fr.comp.os.unix Mail-Copies-To: nobody Subject: Re: Makefiles : noms de variables References: <63576d28$0$25469$426a74cc@news.free.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit User-Agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) Date: Tue, 25 Oct 2022 19:55:15 +0200 Lines: 125 Message-ID: <63582303$0$25955$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 25 Oct 2022 19:55:15 CEST NNTP-Posting-Host: 91.175.52.121 X-Trace: 1666720515 news-2.free.fr 25955 91.175.52.121:1631 X-Complaints-To: abuse@proxad.net Bytes: 4525 In article <63576d28$0$25469$426a74cc@news.free.fr>, Thomas wrote: > bonjour :-) > > > est-ce que les auteurs de make n'auraient pas terminé leur tour du sujet, > ou est-ce que c'est moi qui ne sais pas interpréter mes observations ? désolé, décidément j'oublie tjr qqch. j'ai oublié que j'étais sur une vieille machine avec GNU Make 4.1, alors qu'apparemment la version la plus récente c'est GNU Make 4.3, donc peut-être que des bugs ont été corrigés entre temps. https://www.gnu.org/software/make/manual/html_node/Makefile-Contents.html #index-_0023-_0028comments_0029_002c-in-makefile > You cannot use comments within variable references or function calls: > any instance of # will be treated literally (rather than as > the start of a comment) inside a variable reference or function call. quand j'écris ceci : $(info \#) $(info #) a := $(info \#) a := $(info #) chez moi, ça donne cela : \# # # makefile:4: *** appel à la fonction « info » non terminé : « ) » manquant. Arrêt. mais voilà ce que j'ai trouvé de plus étrange : $(or \#) := code := \# $(info flavor $(code) is '$(flavor $(code))') $(or #) := donne : flavor # is 'simple' makefile:4: *** nom de variable vide. Arrêt. $(or \#) et $(or #) donnent : makefile:1: *** missing separator. Arrêt. or, si $(or #) retourne une chaine vide, ce que laisse penser le reste, ça ne devrait faire aucune erreur ! si ? comment ça se passe chez vous ? bon allez, il faut que j'essaye d'avancer mon code, je m'arrête là pour l'instant sur ce sujet :-) > > > https://www.gnu.org/software/make/manual/html_node/Using-Variables.html > > > A variable name may be any sequence of characters > > not containing ':', '#', '=', or whitespace. > > > je vous propose d'essayer seulement 1 des différentes combinaisons > possibles, et de l'analyser : code := cible : VAR = \# $$(code) $(code) $(code) := texte cible : - := $(info VAR is '$(VAR)') cible : - := $(info flavor VAR is '$(flavor VAR)') $(info $(code) is '$($(code))') $(info value $(code) is '$(value $(code))') $(info flavor $(code) is '$(flavor $(code))') $(info .VARIABLES is '$(.VARIABLES)') donne : VAR is '# cible : VAR = # $(code)' flavor VAR is 'recursive' cible : VAR = # $(code) is '' value cible : VAR = # $(code) is 'texte' flavor cible : VAR = # $(code) is 'simple' ..VARIABLES is '