Deutsch English Français Italiano |
<63582303$0$25955$426a74cc@news.free.fr> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-b.proxad.net!nnrp1-2.free.fr!not-for-mail From: Thomas <fantome.forums.tDeContes@free.fr.invalid> 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 <fantome.forums.tDeContes@free.fr.invalid> 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 '<D ?F .SHELLFLAGS GPR_PROJECT_PATH CWEAVE ?D @D @F CURDIR SHELL RM CO COMPILE.mod _ PREPROCESS.F LINK.m LINK.o OUTPUT_OPTION GPRINSTALLFLAGS COMPILE.cpp MAKEFILE_LIST REQUIRED_GPRBUILDFLAGS GNUMAKEFLAGS LINK.p XDG_DATA_DIRS CC CHECKOUT,v LESSOPEN CPP LINK.cc SSH_CONNECTION PATH LD TEXI2DVI YACC SSH_TTY ARFLAGS LINK.r LINT COMPILE.f LINT.c YACC.m GPRCLEANFLAGS YACC.y AR .FEATURES TANGLE LS_COLORS SSH_AUTH_SOCK GET %F DISPLAY COMPILE.F CTANGLE .LIBPATTERNS LINK.C PWD LINK.S PREPROCESS.r *D LINK.c LINK.s HOME LESSCLOSE cible : VAR = # $(code) LOGNAME GPRBUILD GPRINSTALL ^D MAKELEVEL COMPILE.m MAKE RMDIR SHLVL AS PREPROCESS.S COMPILE.p MAKE_VERSION USER GPRCLEAN GPRBUILDFLAGS FC .DEFAULT_GOAL REQUIRED_GPRINSTALLFLAGS %D WEAVE MAKE_COMMAND LINK.cpp F77 OLDPWD .VARIABLES PC *F COMPILE.def LEX MAKEFLAGS MFLAGS SSH_CLIENT MAIL LEX.l LEX.m +D COMPILE.r MAKE_TERMOUT +F M2C MAKEFILES COMPILE.cc <F CXX REQUIRED_GPRCLEANFLAGS COFLAGS COMPILE.C ^F COMPILE.S LINK.F SUFFIXES COMPILE.c COMPILE.s .INCLUDE_DIRS ..RECIPEPREFIX MAKEINFO MAKE_TERMERR OBJC MAKE_HOST code TEX LANG TERM F77FLAGS LINK.f' -- RAPID maintainer http://savannah.nongnu.org/projects/rapid/