Параллельный makefile требует упорядочивания зависимостей

У меня есть следующий фрагмент makefile:

CXXFLAGS = -std=c++0x -Wall
SRCS     = test1.cpp test2.cpp
OBJDIR   = object
OBJS     = $(SRCS:%.cpp=$(OBJDIR)/%.o)

all: test1 
release: clean test1

test1: $(OBJS)
    $(CXX) -o $@ $(OBJS)

$(OBJDIR)/%.o: %.cpp
    $(CXX) $(CXXFLAGS) -MD -c -o $@ $<

-include $(SRCS:.cpp=.d)

clean:
    rm -rf $(OBJDIR)/*

.PHONY: all clean release 

Теперь, если я пытаюсь вызвать "make -j4 release", чистая цель часто выполняется в середине сборки файлов, что приводит к неудачной компиляции. Мой вопрос в том, как убедиться, что чистая цель завершилась перед началом сборки релиза.

24
задан Mike Kinghan 1 April 2017 в 10:59
поделиться