diff --git a/Makefile.base b/Makefile.base index f9cf7bbf30..1ff14f2d94 100644 --- a/Makefile.base +++ b/Makefile.base @@ -44,8 +44,10 @@ OBJ += $(OBJCXX) DEP = $(SRC:%.c=$(BINDIR)$(MODULE)/%.d) DEP += $(SRCXX:%.cpp=$(BINDIR)$(MODULE)/%.d) -$(BINDIR)$(MODULE).a: $(OBJ) $(ASMOBJ) ${DIRS:%=ALL--%} - @mkdir -p $(BINDIR)$(MODULE) +$(BINDIR)$(MODULE)/: + $(AD)mkdir -p $@ + +$(BINDIR)$(MODULE).a: $(OBJ) $(ASMOBJ) ${DIRS:%=ALL--%} $(BINDIR)$(MODULE)/ $(AD)$(AR) -rc $(BINDIR)$(MODULE).a $(OBJ) $(ASMOBJ) # pull in dependency info for *existing* .o files @@ -53,18 +55,14 @@ $(BINDIR)$(MODULE).a: $(OBJ) $(ASMOBJ) ${DIRS:%=ALL--%} -include $(OBJ:.o=.d) # compile and generate dependency info -$(BINDIR)$(MODULE)/%.o: %.c - @mkdir -p $(BINDIR)$(MODULE) +$(BINDIR)$(MODULE)/%.o: %.c $(BINDIR)$(MODULE)/ $(AD)$(CC) $(CFLAGS) $(INCLUDES) -MD -MP -c -o $(BINDIR)$(MODULE)/$*.o $(abspath $*.c) -$(BINDIR)$(MODULE)/%.o: %.cpp - @mkdir -p $(BINDIR)$(MODULE) +$(BINDIR)$(MODULE)/%.o: %.cpp $(BINDIR)$(MODULE)/ $(AD)$(CXX) $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS) $(INCLUDES) -MD -MP -c -o $(BINDIR)$(MODULE)/$*.o $(abspath $*.cpp) -$(BINDIR)$(MODULE)/%.o: %.s - @mkdir -p $(BINDIR)$(MODULE) +$(BINDIR)$(MODULE)/%.o: %.s $(BINDIR)$(MODULE)/ $(AD)$(AS) $(ASFLAGS) $*.s -o $(BINDIR)$(MODULE)/$*.o -$(BINDIR)$(MODULE)/%.o: %.S - @mkdir -p $(BINDIR)$(MODULE) +$(BINDIR)$(MODULE)/%.o: %.S $(BINDIR)$(MODULE)/ $(AD)$(CC) $(CFLAGS) $(INCLUDES) -MD -MP -c -o $(BINDIR)$(MODULE)/$*.o $(abspath $*.S)