Re: make_rt for 32 and 64 bit applications? [message #67552 is a reply to message #67473] |
Fri, 31 July 2009 13:07  |
Michael Galloy
Messages: 1114 Registered: April 2006
|
Senior Member |
|
|
pp wrote:
> On Jul 30, 10:31 am, David Fanning <n...@dfanning.com> wrote:
> Actually, I found it to be possible to make the runtime versions for
> other machines (in some cases, at least), selecting it with the
> make_rt arguments. That is in recent versions of IDL, at least (I do
> not remember it being possible in older ones).
>
> But it takes a trick to it, which I did not see mentioned in the
> documentation: The result of the runtime build should contain, among
> other things, a directory with the IDL binaries. In the case of linux
> 32, for instance, it is in idl71/bin/bin.linux.x86, inside the
> directory made by make_rt. But when make_rt is run for a machine
> incompatible with the host, that directory will be missing, even
> though all other files and directories are made (even the .exe, .ini
> and .inf files for the Windows version when built in Linux, for
> instance).
>
> However, there is a solution for this problem: the contents of that
> IDL bin directory seem to be independent of the program being
> compiled, so all it takes is to get a copy of that from some runtime
> built in the target architecture, and copy it into the proper place.
> But it gets better: if that directory (in the case of Win32, bin.x86)
> is copied into the IDL installation's bin directory (in the case of
> Linux, itt/idl71/bin, which is where bin.linux.x86_64 and
> bin.linux.x86 reside), then make_rt notices it and puts them into the
> runtime.
>
> So now that I have copied the bin.x86 and bin.x86_64 from Windows
> runtime builds into my Linux itt/idl71/bin, I simply use the proper
> switch in make_rt, and it makes the whole finished product to use in
> Windows. I have only done that to make Windows (32 and 64) runtime
> versions from Linux. Maybe I will try it in the other direction, and
> also see if I can find a Mac to test with.
>
> It may be that your Win32 IDL already contains the Win64 binaries
> (mine, installed in Vista 64, has both), in which case make_rt would
> already have everything it needs, so you would only need to select the
> win32 or win64 keyword.
I successfully just made an uber-installation on Mac OS X including
Mac-Intel 32/64-bit, Linux 32/64-bit, and Windows 32-bit. Applications
made with MAKE_RT there should be able to run on any of those platforms
-- I tested Mac-Intel 64-bit, Linux 32-bit and Windows 32-bit and they
all worked fine. Cool! (Of course the output was 430+ MB.)
Mike
--
www.michaelgalloy.com
Associate Research Scientist
Tech-X Corporation
|
|
|