On Tue, Oct 20, 2009 at 4:37 PM, Glynn Clements <[email protected]> wrote: > > Stefano Salvador wrote: > >> I'm trying to compile revision 39598 of grass trunk but I get a list >> of undefined symbol for almost all modules, the output of make is: > >> if I run make in the first library with errors I get: > >> -lgrass_ -lgrass_ -lgrass_ -lgrass_ > > Well, that's where it's going wrong.
Same problem on grass.osgeo.org - no more possibility to create binaries and the online 7 manual. > I suspect that it's related to r38871, which uses $(eval $(call ...)) > to define the *_LIBNAME, *LIB and *DEP variables: > > libs = \ > ARRAYSTATS:arraystats \ > BASIC:basic \ > BITMAP:bitmap \ > ... > > define lib_rules > $(1)_LIBNAME = grass_$(2) > ifneq ($(NEED_DEPS),) > $(1)LIB = -l$$($(1)_LIBNAME) $$($(1)DEPS) > else > $(1)LIB = -l$$($(1)_LIBNAME) > endif > ifneq ($(1),IOSTREAM) > $(1)DEP = $$(BASE_LIBDIR)/$$(LIB_PREFIX)$$($(1)_LIBNAME)$$(LIB_SUFFIX) > else > $(1)DEP = > $$(BASE_LIBDIR)/$$(STLIB_PREFIX)$$($(1)_LIBNAME)$$(STLIB_SUFFIX) > endif > endef > > $(foreach lib,$(libs),$(eval $(call lib_rules,$(firstword $(subst :, > ,$(lib))),$(lastword $(subst :, ,$(lib)))))) > > It looks as if $(1) is set okay, but $(2) is empty, so all of the > *_LIBNAME variables are being set to "grass_". Right. > You can confirm this by > using the -p switch (e.g. "make -p -C lib/form"), which will print all > of the variable definitions. Confirmed. >> the system is SUSE 10 with gcc 4.1, I have removed each previous >> installation of grass. > > FWIW, it works for me with make 3.81 (and presumably for everyone else > who has compiled it in the last month). My first guess would be an > issue with your version of make; which version are you using? I am on Fedora 4 (so old, but so far ok) with make -v GNU Make 3.80 I think that this should continue to work... GRASS will be used on many "ancient" machines. Markus _______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
