[GRASS5] mingW: how to exclude win32_pipes.c & user_config.c from compilation?

Radim Blazek radim.blazek at gmail.com
Mon Feb 13 11:31:01 EST 2006


On 2/13/06, Glynn Clements <glynn at gclements.plus.com> wrote:
>
> Radim Blazek wrote:
>
> > > > > we have to exclude compilation of
> > > > > lib/gis/win32_pipes.c
> > > > > lib/gis/user_config.c
> > > > >
> > > > > when compiling with mingW.
> > > >
> > > > Huh? The whole of win32_pipes.c is conditionalised upon
> > > > "#ifdef __MINGW32__", so if that file isn't wanted for MinGW, it
> > > > should just be removed.
> > > >
> > > > > How to modify the Makefile?
> > > > > Is there a way to define an EXCLUDE variable in this
> > > > > Makefile and make include/Make/Lib.make aware of it?
> > > > >
> > > > > I know too little about Makefile programming to implement
> > > > > it correctly. Throwing files away may not be the solution.
> > > >
> > > > The usual approach is to just conditionalise the entire source file
> > > > upon a macro, so that you effectively get an empty file if the test is
> > > > false.
> > >
> > > I don't know - this was a request by Radim, I suggested
> > > to him to remove the files. Let's listen to him.
> >
> > Those two files do not compile with MinGW but they are not
> > used in fact. The files were not in the list of files for compilation
> > in Makefile but with the recent change which is using *.c
> > appeared in the list. I only want that it compiles. Do whatever
> > you prefer. I just worry that if we delete the files the code will be
> > forgoten for ever.
>
> ISTR that win32_pipes.c is supposed to be replacements for
> unix_socks.c, as Windows doesn't support PF_LOCAL (aka PF_UNIX)
> sockets.
>
> Personally, I would have thought it would be simpler to just use a
> PF_INET socket instead (e.g. use an ephemeral port and write the port
> number to a file with the same pathname as would have been used for
> the PF_LOCAL socket).
>
> Do you have any idea why they don't compile under MinGW? Both appear
> to have been explicitly written with MinGW in mind. Maybe we need some
> additional compilation options?

user_config.c:34:17: pwd.h: No such file or directory
user_config.c: In function `_make_toplevel':
user_config.c:87: warning: implicit declaration of function `lstat'
user_config.c:94: error: too many arguments to function `mkdir'
user_config.c: In function `_make_sublevels':
user_config.c:246: error: too many arguments to function `mkdir'

OBJ.i586-pc-mingw32msvc/win32_pipes.o(.text+0x62): In function
`G_pipe_get_fname':
/ssi0/ssi/blazek/win/source/grass6/lib/gis/win32_pipes.c:66: undefined
reference to `_lstat'
OBJ.i586-pc-mingw32msvc/win32_pipes.o(.text+0x166): In function `G_pipe_exists':
/ssi0/ssi/blazek/win/source/grass6/lib/gis/win32_pipes.c:142:
undefined reference to `_CloseFile'

Radim

> --
> Glynn Clements <glynn at gclements.plus.com>
>




More information about the grass-dev mailing list