[GRASS-dev] current grass 6.3.cvs cross compilation

Paul Kelly paul-grass at stjohnspoint.co.uk
Tue Dec 5 04:17:03 EST 2006


Hello Benjamin and Glynn,

On Sat, 2 Dec 2006, Glynn Clements wrote:

>
> Benjamin Ducke wrote:
>
>> Bad news:
>> it seems impossible to cross-compile the current GRASS 6.3.cvs version.
>>
>> Bsically, every module I try to compile for Win32 on my Linux box fails
>> with sth. like this:
>>
>>  *** No rule to make target
>> `/home/benni/wingrass/source/grass6/dist.i586-pc-mingw32msvc/lib/libgrass_vect.so',
>> needed by
>> `/home/benni/wingrass/source/grass6/dist.i586-pc-mingw32msvc/bin/v.in.db.exe
>>
>> Obviously, it should not be looking for libgrass_vect.so but for
>> libgrass_vect.dll !
>>
>> I am still able to compile the same modules, using the same tools, in a
>> GRASS 6.1.CVS tree!
>>
>> Maybe some change to the configure script or one of the GRASS makefiles
>> broke something?
>
> Odd.
>
> AFAICT, cross-compiling shared libraries should never have worked.

Actually, I broke that recently. It did seem to support it in a kind of 
hacky way but the problem was it assumed if you were compiling for MINGW 
that you were cross-compiling, which broke native compiling on Windows in 
a few places. So I changed SC_CONFIG_CFLAGS to include a MINGW section and 
removed most of the MINGW conditional bits from configure.in.

> SC_CONFIG_CFLAGS uses "uname" to determine the platform, which returns
> the build platform, not the host platform.
>
> It should be using either $host or the components $host_cpu,
> $host_vendor, and $host_os.

Will investigate using $host_os if I get a chance. There should be some 
documentation on the internet I would hope? Quite a few people have 
contributed sets of compiler flags for their platform (and I've added a 
good few myself too) since we took that SC_CONFIG* stuff out of Tcl, and I 
wouldn't want to scrap all the useful information in there.

Paul




More information about the grass-dev mailing list