You need to include the relative path for both sources and targets:
Code:
bo/%.o: bo/%.c
$(CC) $(CFLAGS) $^ -c -o $@
bo/%: bo/%.o
$(LD) $(LDFLAGS) $^ -o $@
However, it is mode common to put (or copy or generate) a separate Makefile in each directory, and use
Code:
directory: directory/Makefile
cd directory && $(MAKE)
(The directory/Makefile part is only needed or useful if you generate your Makefiles.)
The GNU Make Manual is quite useful, even if some of its features are GNU make specific; most of the features are available in other make variants, too, and the documentation usually mentions if the feature is GNU specific or not.