The problem is in this line:
$(BIN)/out.exe : $(OBJ)/%.o
$(CC) $(ALL_INC) $(FLAGS) -o out.exe
$(BIN)/out.exe must know all files it depends on
Add this:
SRCS=$(wildcard $(SRC)/*.cpp) // List all source files
OBJS=$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o) // List all object files (one for each source file)
Then change the out.exe rule:
$(BIN)/out.exe : $(OBJS)