J'ai un makefile qui a des déclarations comme ci-dessous:le débogage d'un makefile
TOPICS = dmic
SRV_MODE =
ifeq "$(SRV_FLAG)" "ON"
SRV_MODE = 2
endif
vpath d%_srv.h $(CNT_PATH)
USER_PRE_TARGETS := $(foreach topic,$(TOPICS),$(topic)_srv.h)
dmic_srcs = $(wildcard $(CCWSCA)/dmic/src/*.c) \
$(wildcard $(CCWSCA)/dmic/src/*.ppc)
dmic_srv.h: $(dmic_srcs)
srvgen dmic $(SRV_MODE)
users_topic =
users_topic := $(shell ls -tr $(CCWPA)/$(CCBB)/Makefile.pre* | \
tail -1 | awk 'BEGIN{FS="Makefile.pre."}{printf("%s\n", $$2);}')
USER_PRE_TARGETS := $(foreach topic,$(users_topic),d$(topic)_srv.h)
Après je lance la construction, je reçois des messages comme ceux ci-dessous:
gmake: Entering directory `/veluser2/vel/abp/bvijays/proj/c9mi790V64OG/cmi9dl'
echo dmic
dmic
srvgen dmic 2
Working on directory : /veluser2/vel/abp/bvijays/bb/cmi9dl/v79_0/dmic/src
Working on directory : /velhome/vel/ccvel/ccvel/bb/cmi9dl/v79_0/dmic/src
foreach: No match.
gmake: *** [ddmic_srv.h] Error 1
gmake: Target `pre' not remade because of errors.
gmake: Leaving directory `/veluser2/vel/abp/bvijays/proj/c9mi790V64OG/cmi9dl'
Il semble qu'il y ait un problème avec la commande foreach émise? Comme je suis nouveau à ces makefiles, quelqu'un pourrait-il suggérer comment déboguer le makefile?
'outil qui make' utilisez-vous? Il existe un standard * defacto * mais beaucoup ont des extensions spécialisées. BTW l'exemple montre 'gmake', mais cela pourrait être n'importe quoi. –
@Thomas: gmake est usuall GNU make, et avec les 's et '$ (foreach)'' '$ (génériques)' s dans là, il vaut mieux être ... – dmckee