こういうのには興味ないかな?
TEST_PATH=./test
CC=g++
AR=ar
RANLIB=ranlib
INC=-I./
LIB=-L./ -lbbs
OPT=-Wall -DTEST_PATH
LIB_BBS_OBJ=libbbs.o
TARGET=bbs.cgi read.cgi config.cgi

all: $(TARGET)
bbs.cgi: libbbs.a
  $(CC) $(LIB) $(OPT) -o bbs.cgi bbs.cgi

libbbs.a: $(LIB_BBS_OBJ)
  $(AR) -fr libbbs.a $(LIB_BBS_OBJ)
  $(RANLIB) libbbs.a

read.cgi: libbbs.a
  $(CC) $(LIB) $(OPT) read.cpp

config.cgi: libbbs.a
  $(CC) $(LIB) $(OPT) config.cpp

.cpp.o:
  $(CC) -c $(OPT) $<

clean:
  rm -f *.o
  rm -f libbbs.a
  rm -f $(TARGET)