diff --git a/Makefile.base b/Makefile.base
index f9cf7bbf30a299d3cac04dc9ee594d34c87b1e14..1ff14f2d94c52f22f5a377735614942fff1d1de2 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)