Comment append une option de débogage à Makefile

J’ai le Makefile simple ci-dessous que j’utilise pour comstackr un programme C:

all: gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm 

Je veux append une option de débogage pour pouvoir comstackr avec -DDEBUG, donc si je lance

 make 

il comstack comme d’habitude. et si je cours

 make debug 

il complile avec le drapeau de débogage.

J’ai lu quelques tutoriels mais il semble que je devienne de plus en plus confus.

Voici un exemple de fichier contenant les deux options que vous recherchez.

 all: gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm debug: gcc -DDEBUG -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm 

Vous aviez juste besoin d’append une option de débogage, ce qui se fait de la même manière que l’option ‘tout’ que vous aviez déjà déclarée.

Si vous voulez savoir comment bien le faire, le voici. Vous ne faites pas de make debug , vous devriez plutôt appeler

 >make 

ou

 >make DEFS=DEBUG 

ou

 >make DEFS='ANY DEFINES YOU WANT' 

Outre les critères habituels de reconstruction, le DEFS Makefile suivant reconnaît les reconstructions basées sur DEFS .

 define DEPENDABLE_VAR .PHONY: phony $1: phony @if [[ `cat $1 2>&1` != '$($1)' ]]; then \ echo -n $($1) > $1 ; \ fi endef $(eval $(call DEPENDABLE_VAR,DEFS)) .PHONY: all all: myfile SRCS := myfile.c lol_dht22/dht22.c lol_dht22/locking.c myfile: $(SRCS) Makefile DEFS gcc $(addprefix -D, $(DEFS)) -Wall -o $@ $(SRCS) -lwiringPi -lcurl -lm