Is this a problem in gnustep-make, gcc, the makefile ?
I would say this is the expected behavior. The XXX_LDFLAGS variables are
supposed to provide library paths, i.e., -L options, but not libraries
themselves, i.e., -l options. These should be provided via a XXX_LIBS flags
(and if I'm not mistaken adserver_LIBS should do the job). The reason for this
separation is that for many linkers the order of arguments on the command line
matters. The problem with the initial version of your Makefile is that
-lAddresses appeared before ./obj/adserver.obj/adserver.m.o on the command line
and hence the library wasn't used to resolve undefined references in the object
file. The second version of the makefile gets the order of arguments right,
i.e., -LAddresses appears after ./obj/adserver.obj/adserver.m.o in the link
command line.