J'ai posté les bits pertinents de mon makefile. Lorsque je cours make all
sur ce makefile, il y a une erreur de compilation lors de la compilation debugosd.o
. Cependant, parce que make a trouvé debugosd.o
précédemment construit, il continue simplement à construire dialup.otz
.Comment puis-je forcer à quitter si la compilation d'une dépendance échoue?
Sans supprimer tous les .o, comment puis-je forcer debugosd.o
à devenir obsolète - et ainsi forcer make
à s'arrêter dès qu'il rencontre l'erreur de compilation dans debugosd.o
?
La règle pour créer des fichiers .o est:
%.o: %.c
$(TITLE)
$(CC) $(COMPILE) $(C_OPTIONS) -c $<
Et l'extrait makefile est:
all: shared0.flw shared1.flw shared2.flw shared3.flw
debugosd.o: debugosd.c debugosd.h
xdialler_interface_new.o: xdialler_interface.h
dialup.ooo: xdialler_interface_new.o debugosd.o xDialler.a
$(TITLE)
$(MAKE_OOO)
dialup.otz: dialup.ooo
$(BIN)opress $<
shared1.dir: dialup.otz
$(TITLE)
$(BIN)dirbuild $(SHAREDDIR1_OPTIONS)
shared1.flw: shared1.dir
$(TITLE)
$(BIN)flwbuild $(SHAREDFLW_OPTIONS1)
En fait, je compris quel était le problème. Je forçais la reconstruction de shared1.flw
en utilisant une cible bidon. Je pense que cela forçait make
à continuer malgré les erreurs.
Étrange, je pensais faire déjà faire cela. – Pace
Oui, moi aussi - make continue de construire shared2.flw et shared3.flw. – BeeBand