Bonjour,
Voici quelques éléments de doc :
https://www.gnu.org/software/make/manual/make.html
§6.3 :
There is another assignment operator for variables, "?=". This is called
a conditional variable assignment operator, because it only has an
effect if the variable is not yet defined.
§6.3.1 :
$(TMPOBJ:.c=.o) est une substitution de .c par .o dans le contenu de TMPOBJ
En résumé, si OBJ n'est pas défini, alors OBJ prendra la valeur de la
substitution de ".c" par ".o" dans le contenu de la variable TMPOBJ.
En clair:
si TMPOBJ = foo.c bar.c toto.x
et que OBJ n'est pas défini, alors au final
OBJ = foo.o bar.o toto.x
Si OBJ avait une valeur, celle ci serai demeurée inchangée.
Pierre
Le 28/02/2020 à 14:33, Patrick Dupre a écrit :
> Bonjour,
>
> Que signifie la directive
> OBJ ?= $(TMPOBJ:.c=.o)
>
> dans un Makefile ?
>
> Merci
> ===========================================================================
> Patrick DUPRÉ | | email: pdupre@???
> Laboratoire interdisciplinaire Carnot de Bourgogne
> 9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE
> Tel: +33 (0)380395988
> ===========================================================================
>
>