Я разместил соответствующие биты моего make-файла. Когда я запускаю make all
на этом make-файле, при компиляции debugosd.o
возникает ошибка компиляции. Однако, поскольку make обнаружила ранее собранный debugosd.o
, он просто продолжает сборку dialup.otz
.
Не удаляя все .o, как я могу заставить debugosd.o
устареть - и, таким образом, заставить make
остановиться, как только он достигнет ошибки компиляции в debugosd.o
?
Правило создания файлов .o:
%.o: %.c
$(TITLE)
$(CC) $(COMPILE) $(C_OPTIONS) -c $<
И фрагмент make-файла:
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)
На самом деле, я понял, в чем проблема. Я заставлял перестраивать shared1.flw
, используя фальшивую цель. Я думаю, что это вынудило make
продолжить работу независимо от ошибок.