[GRASS5] Problems compiling grass51/57 on cygwin

Paul Kelly paul-grass at stjohnspoint.co.uk
Tue Oct 7 10:32:23 EDT 2003


On Tue, 30 Sep 2003, Buchan Milne wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I need just a basic grass51/57 on cygwin (since I do actualy work on
> linux, but for a simulation I need it running on Windows), so I tried to
> build from my cvs snapshot from the weekend that built fine with all
> options on my linux boxes, but I still ran into problems.
>
> Firstly, it seems 'make mix' has problems on Cygwin (due to problems
> with symbolic links it sees).

Has always been OK for me...are you sure you are using an NTFS partition?

>
> Secondly, I got the common cygwin error "undefined reference to
> WinMain at 16". Googling for this seemed to indicate that the "-shared"
> option needs to be passed for linking, so I added this in
> include/Make/Shlib.make (I guess there should be a better solution).

You can't compile GRASS with shared libraries on Cygwin and you must use
the --enable-shared=no configure option (not using this probably causes
most of the following errors)

>
> The build then at least procedes further and links some libraries, but I
> then get a whole bunch of errors in lib/gis/env.c (starting with
> G_GISRC_MODE_FILE undeclared), which I haven't as yet been able to resolve.
>
> Is anyone else seeing these issues (or do I need to update my Cygwin
> installation - it was running the binary dist of 5.0.0 quite well though)?
>
> It would help if the documentation (ie INSTALL) mentioned at least the
> first issue (if it's not irrelevant).

I'm sure I read somewhere that you must use NTFS or else GRASS will not
work but maybe there's another problem...

In general 5.7 has recently had some support added for optionally building
components and it looks like we are going to go along the model of setting
a variable USE_XXX=1 in the configure script and then in the top-level
Makefiles for types of modules (vector, raster etc.) using a sequence of
ifneq(USE_XXX,)
SUBDIRS += moduledependentonXXX1 moduledependentonXXX2
endif
etc.
(Look at the vector Makefile for v.in.ogr etc. to see how it is done and
then you can submit patches for other modules e.g. to make
--without-tcltk and other options to work)

Paul






More information about the grass-dev mailing list