★ MAKE_RT über-installation
posted Tue 4 Aug 2009 by Michael Galloy under IDLThe MAKE_RT
routine was added in IDL 7.0 to make it easier to distribute an application that runs on the IDL Virtual Machine. Given the location of a .sav
file and an application name, MAKE_RT
copies the .sav
file and all the IDL Virtual Machine files necessary to run it into the output directory. It even makes an system-dependent launcher program i.e. an .exe
on Windows, .app
on Mac, and launch script on other Unix systems. But to make a cross-platform application, it seemed necessary to run the MAKE_RT
multiple times, once on each platform you intended to support.
But this post on comp.lang.idl-pvwave by Paulo Penteado, provided the simple solution: just copy the contents of the various bin.*
directories from IDL distributions on all the platforms you intend to support to one installation i.e. an IDL über-installation. For example, if you copy the bin.darwin.x86_64
directory from a 64-bit Mac-Intel distribution to your own IDL bin
directory, you can now use the MACINT64
keyword to MAKE_RT
. Set all the keywords corresponding to the binary directories you have and a distribution that runs on all those platforms can be created with one call of MAKE_RT
. (See a followup post that lists a few issues with the process on specific platforms. A Mac über-installation seems like the best choice.)
Here is a wrapper for MAKE_RT
that automatically discovers which binary directories are present in your distribution and automatically sets the appropriate platform keywords to MAKE_RT
.
August 6th, 2009 at 11:20 am
See Paulo Penteado’s detailed description of the process, including a download of the Virtual Machine files for Linux, Windows and Mac.
April 7th, 2010 at 3:49 pm
Hi Mike,
You Say “just copy the contents of the various bin.* directories..”
That’s not entirely true. You only need copy the DLLs/code that your program uses. e.g. no need to copy the Dicom stuff if you’re not using it in your program, etc. In many cases you can throw away almost all the provided DLL’s and
minimise the size of your distrubution.
Don’t use LAPACK? Delete lapack.dll and save 2MB in your distro…
Regards,
Andrew Cool
April 7th, 2010 at 4:13 pm
Yes, that is true. But you can also use a manifest file to control what files are copied. I would say it is safer to make a complete über-installation and then make application-specific manifest files that copy only the needed .dll/.so files for your application since the next application you make might require different files.