+DEBUG_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(DEBUG_DIR)/%.o, $(SRC))
+DEBUG_LIB_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(DEBUG_DIR)/%.o, $(LIB_SRC))
+DEBUG_DEP := $(DEBUG_OBJ:.o=.d)
+DEBUG_BIN := blank.debug
+
+PROFILE_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(PROFILE_DIR)/%.o, $(SRC))
+PROFILE_LIB_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(PROFILE_DIR)/%.o, $(LIB_SRC))
+PROFILE_DEP := $(PROFILE_OBJ:.o=.d)
+PROFILE_BIN := blank.profile generate.profile
+
+RELEASE_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(RELEASE_DIR)/%.o, $(SRC))
+RELEASE_LIB_OBJ := $(patsubst $(SOURCE_DIR)/%.cpp, $(RELEASE_DIR)/%.o, $(LIB_SRC))
+RELEASE_DEP := $(RELEASE_OBJ:.o=.d)
+RELEASE_BIN := blank
+
+TEST_OBJ := $(patsubst $(TEST_SRC_DIR)/%.cpp, $(TEST_DIR)/%.o, $(TEST_SRC)) $(patsubst $(SOURCE_DIR)/%.cpp, $(TEST_DIR)/src/%.o, $(LIB_SRC))
+TEST_DEP := $(TEST_OBJ:.o=.d)
+TEST_BIN := blank.test
+
+OBJ := $(COVER_OBJ) $(DEBUG_OBJ) $(PROFILE_OBJ) $(RELEASE_OBJ) $(TEST_OBJ)
+DEP := $(COVER_DEP) $(DEBUG_DEP) $(PROFILE_DEP) $(RELEASE_DEP) $(TEST_DEP)
+BIN := $(COVER_BIN) $(DEBUG_BIN) $(PROFILE_BIN) $(RELEASE_BIN) $(TEST_BIN)
+
+release: $(RELEASE_BIN)
+
+info:
+ @echo "CXX: $(CXX)"
+ @echo "LDXX: $(LDXX)"
+ @echo
+ @echo "LIBS: $(LIBS)"
+ @echo
+ @echo "CPPFLAGS: $(CPPFLAGS)"
+ @echo "CXXFLAGS: $(CXXFLAGS)"
+ @echo "LDXXFLAGS: $(LDXXFLAGS)"
+ @echo "TESTFLAGS: $(TESTFLAGS)"
+ @echo "TESTLIBS: $(TESTLIBS)"
+ @echo
+ @-lsb_release -a
+ @git --version
+ @g++ --version