[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