Aller au contenu

Accolades {dans les makefiles GNU (ultra urgent)


ludelle

Messages recommandés

Bonjour,

Dans le cadre de mon travail (sous linux) j'ai récupéré un makefile censé fonctionné. Je ne suis pas un dieu dans ces choses la mais le problème est simple, j'ai une ligne :

ASMFLAGS += $(foreach var, $(GLOBAL_FLAGS), $(subst define,$(var), -PD\ \"define\ SETL\ {TRUE}\"))

qui est censé donner des lignes de ce style dans un fichier

-PD "V4_CRE_TSK SETL {TRUE}"

-PD "V4_DEL_TSK SETL {TRUE}"

-PD "V4_TER_TSK SETL {TRUE}"

Le problème, c'est que j'ai plutot ca

-PD "V4_CRE_TSK SETL TRUE"

-PD "V4_DEL_TSK SETL TRUE"

-PD "V4_TER_TSK SETL TRUE"

Ce qui me fait planter la compilation ou autre (en mettant les accolades à la main ca passe)

J'ai un peu tout essaye, double accolades {{, prefixe par \, entre ", definie dans une variable; mais rien ne passe! :D

SVP comment peut on faire pour que le make considère l'accolade comme un caractere classique?

Merci d'avance,

Ludelle pas belle

Ps: :transpi: faut que ca marche cette après midi 14h00 sniff

Lien vers le commentaire
Partager sur d’autres sites

Et si tu bricoles un truc en sed pour remplacer les occurences de TRUE par des {TRUE} ?

Je suis pas très fort en sed make et tout le tralala, mais si effectivement j'ai pas trop de solution je vais essayer..

Le problème est que le makefile est relativement complexe et je sais même pas quelle partie fait quoi et ou mettre le sed..

Bon, de toutes facons, si j'y arrive pas cet après -midi j'attendrais notre spécialiste qui revient lundi..

Merci

Lien vers le commentaire
Partager sur d’autres sites

Y'a pas de problème avec les accolades :

% cat Makefile 

GLOBAL_FLAGS = test1 test2
ASMFLAGS += $(foreach var, $(GLOBAL_FLAGS), $(subst define,$(var), -PD\ \"define\ SETL\ {TRUE}\"))

all:
	@echo "$(ASMFLAGS)"
	@echo $(ASMFLAGS)

% make
 -PD\ "test1\ SETL\ {TRUE}"   -PD\ "test2\ SETL\ {TRUE}"
-PD "test1 SETL {TRUE}" -PD "test2 SETL {TRUE}"

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...