As for personal experience, I would keep the original structure of the makefile and insert the CDEBUG variable in each g++ recipe line. (of course, the makefile can be improved with static-patterns, which is not the case here). In that way all I have to do to generate a debuggable program is either to change CDEBUG declartion in the Makefile or to override in the make invokation 'make "CDEBUG=-g"'.
CDEBUG := -g #(or -ggdb, -g1- -g2 -gdwarf and so on)
all: sample1
sample1: deneme.o hello.o
g++ deneme.o hello.o -o sample1
deneme.o: deneme.cpp
g++ $(CDEBUG) -c deneme.cpp
hello.o : hello.cpp
g++ $(CDEBUG) -c hello.cpp
The solution offered by Paul will work, but notice it will create lots of *-debug files which won´t be of any importance. But of course I will be happy to understand otherwise.