[GRASS5] RE: [winGRASS] compiling grass6.0.0beta2 on cygwin/grass6.0.0beta1 on mingw
Javier A. Yebrin
javier.yebrin at ing.unitn.it
Wed Feb 9 06:12:24 EST 2005
(cc WINGRASS)
Hi Marco, and developers:
I think I've found a similar problem when trying to compile GRASS6 beta 1
under MINGW. The first strange behaviour is that ./configure does'nt write
the following variables in Platform.make :
SHLIB_LD
SHLIB_SUFFIX
Leading to an error while making (I'm giving the example of making
libgrass_gis), because there is no linker program to run. Editing these
variables manually to:
SHLIB_LD= gcc -shared
SHLIB_SUFFIX= .dll
Linking is done, but then at the final command an error occurs:
[...] && ln -sf libgrass_gis.6.0.0beta1.dll
/home/javier/grass_clean/dist.i686-pc-mingw32/lib/libgrass_gis.dll
ln: creating symbolic link
`/home/javier/grass_clean/dist.i686-pc-mingw32/lib/libgrass_gis.dll' to
`libgrass_gis.6.0.0beta1.dll': No such file or directory
make: ***
[/home/javier/grass_clean/dist.i686-pc-mingw32/lib/libgrass_gis.6.0.0beta1.d
ll] Error 1
I've managed to work this out, adding the path to the grass libs in the
Shlib.make like this:
$(SHLIB): $(SHLIB_OBJS)
$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(EXTRA_LIBS) && ln -sf
/home/javier/grass_clean/dist.i686-pc-mingw32/lib/$(notdir $@) $(patsubst
%.$(GRASS_VERSION_NUMBER)$(SHLIB_SUFFIX),%$(SHLIB_SUFFIX),$@)
However, when compiling a single module, such as r.info, make (or the module
itself) cannot find the needed libgrass libraries:
"Imposible to find libgrass_gis.6.0.0beta1.dll" -> windows popup error
There is a path/filename problem somewhere, and I think it is related to
Marco's problem.
Does anyone have a clue on this?
Thanks in advance
Javier
-----Original Message-----
From: wingrass-admin at grass.itc.it [mailto:wingrass-admin at grass.itc.it] On
Behalf Of marco.lechner
Sent: Wednesday, February 09, 2005 11:14 AM
To: grass5 at grass.itc.it; wingrass at grass.itc.it
Subject: [winGRASS] compiling grass6.0.0beta2 on cygwin
Hi list,
for the GRASS-User-Panel in Freiburg in 10 days I compiled a fresh Version
from grass-6.0.0beta2 on my cygwin-machine and found this:
./configure with all the available works perfectly but during the make the
compiler says that it couldn't find libgrass_*.6.0.cvs.dll - well of course
I'm compiling the beta2 (as written in include/VERSION and all the produced
grass-libs are named libgrass_*.6.0.0beta2.dll.
If I edit the VERSION file to 6.0.cvs the whole compilation works perfectly
(libgrass_*cvs.dlls are produced an found in the later compilation process)
and I can install it with make install without any problems.
Well - not a serious problem but how could this be?
Why does the compiler think I'm compiling 0beta2 while creating the libs and
later on it thinks why not searching for the cvs-Versions of the grass-libs?
First I thought because of the existing VERSION~-file in include (it says
cvs!) but deleating it, make distclean and all again from the beginning
gives the same results. Where does the compiler get the "cvs"?
Oh I forgot: the compiler asks for the wrong libs during compiling different
modules (d.* g.* v.* r.*, . no difference)
Any idea?
Because I do not know if this is a cygwin or a 0beta2 problem I'm posting to
both mailinglists
Marco Lechner
More information about the grass-dev
mailing list