# add flags specific to the library target and all prerequisites
-${L_OBJS_$P} ${L_DEPS_$P}: CXX := ${CXX_$P}
-${L_OBJS_$P} ${L_DEPS_$P}: CXXFLAGS := ${CXXFLAGS_$P}
-${L_OBJS_$P} ${L_DEPS_$P}: INCFLAGS := ${INCFLAGS_$P}
- ${L_DEPS_$P}: DEPSDIR := ${DEPSDIR_$P}
- ${L_DEPS_$P}: OBJSDIR := ${OBJSDIR_$P}
+${L_OBJS_$P}: CXX := ${CXX_$P}
+${L_OBJS_$P}: CXXFLAGS := ${CXXFLAGS_$P}
+${L_OBJS_$P}: INCFLAGS := ${INCFLAGS_$P}
+${L_OBJS_$P}: DEPSDIR := ${DEPSDIR_$P}
+${L_OBJS_$P}: OBJSDIR := ${OBJSDIR_$P}
${TARGETTMP_$P}: CXX := ${CXX_$P}
${TARGETTMP_$P}: CXXFLAGS := ${CXXFLAGS_$P}
define cmd-cpptoobj
${Q1s}${PRNTLOG} "${CXX}" "$@" ${Q1e}
${Q2s}${PRNTFMT} "${CXX}" "$@" ${Q2e}
- ${Q3s}${CXX} $< -o $@ ${CXXFLAGS} ${INCFLAGS} -c ${Q3e}
- ${Q4s}${CXX} $< -o $@ ${CXXFLAGS} ${INCFLAGS} -c ${Q4e}
+ ${Q3s}${CXX} -c $< -o $@ -MF ${@:${OBJSDIR}%.o=${DEPSDIR}%.d} ${CXXFLAGS} ${INCFLAGS} -MMD -MQ $@ ${Q3e}
+ ${Q4s}${CXX} -c $< -o $@ -MF ${@:${OBJSDIR}%.o=${DEPSDIR}%.d} ${CXXFLAGS} ${INCFLAGS} -MMD -MQ $@ ${Q4e}
endef
+# Do nothing. This is now done in parallel with cpptoobj. However, you still
+# need to write rules using this to cause dependency directories to be created
define cmd-cpptodep
- ${Q1s}${PRNTLOG} "DEP" "$@" ${Q1e}
- ${Q2s}${PRNTFMT} "DEP" "$@" ${Q2e}
- ${Q3s}${CXX} $< -MF $@ ${CXXFLAGS} ${INCFLAGS} -MM -MQ ${@:${DEPSDIR}%.d=${OBJSDIR}%.o} -MQ $@ ${Q3e}
- ${Q4s}${CXX} $< -MF $@ ${CXXFLAGS} ${INCFLAGS} -MM -MQ ${@:${DEPSDIR}%.d=${OBJSDIR}%.o} -MQ $@ ${Q4e}
endef
-${L_OBJS_$P} ${L_DEPS_$P}: CXX := ${CXX_$P}
-${L_OBJS_$P} ${L_DEPS_$P}: CXXFLAGS := ${CXXFLAGS_$P}
-${L_OBJS_$P} ${L_DEPS_$P}: INCFLAGS := ${INCFLAGS_$P}
- ${L_DEPS_$P}: DEPSDIR := ${DEPSDIR_$P}
- ${L_DEPS_$P}: OBJSDIR := ${OBJSDIR_$P}
+${L_OBJS_$P}: CXX := ${CXX_$P}
+${L_OBJS_$P}: CXXFLAGS := ${CXXFLAGS_$P}
+${L_OBJS_$P}: INCFLAGS := ${INCFLAGS_$P}
+${L_OBJS_$P}: DEPSDIR := ${DEPSDIR_$P}
+${L_OBJS_$P}: OBJSDIR := ${OBJSDIR_$P}
cleanbin-$P: BINDIR := ${BINDIR_$P}
cleanobjs-$P: OBJSDIR := ${OBJSDIR_$P}