[GRASS5] 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

(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@grass.itc.it [mailto:wingrass-admin@grass.itc.it] On
Behalf Of marco.lechner
Sent: Wednesday, February 09, 2005 11:14 AM
To: grass5@grass.itc.it; wingrass@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