(Install Microsoft and Mac OS X Cross-Compilers) Installation of Linux-hosted Cross-Compilers and Libraries targeting Microsoft Windows and Mac OS X |
- What is IMCROSS?
- Introduction
- What Do You Get (by running the IMCROSS script)?
- Licensing
- Design decisions and problems
- Download (and change-log)
- Usage
- Running the Installer for the Cross-Toolchains and Cross-Compiled Libraries
- Customization of installation
- More details concerning installation
- Cross-Compiling Actual or Sample Programs
- Testing the IMCROSS Installation
- Validation: I. Regression testing of build-processes
- Validation: II. Regression testing of cross-compiled command-line programs
- Validation: III. Testing of cross-compiled GUI programs and installers
- Deployment of Cross-Compiled Applications: I. Simple Deployment
- Deployment of Cross-Compiled Applications: II. Creating an Installation Program for Windows (setup.exe) or Linux
- Deployment of Cross-Compiled Applications: III. Creating a Mac OS X Application Bundle
- Skeleton of a simple application bundle
- Skeleton of a simple Info.plist
- Necessary modifications to source code
- Alternate Versions of Cross-Compiled Libraries
- Multiple Simultaneous Alternate Versions of Cross-Compiled wxWidgets
- Cloning an IMCROSS installation
- Future possibilities
- Framework for user-contributed enhancements
- Some Typical Problems Writing Cross-Platform Programs
- RAD for Cross-Platform Toolkits
- Windows Cross-Platform Problems
- Mac OS X Cross-Platform Problems
- Linux Cross-Platform Problems
- Q&A
Major
Tool
or Toolkit |
Windows |
Mac
OS X |
||||
10.4 |
10.5 |
|||||
XP |
Vista |
PPC |
Intel |
PPC |
Intel |
|
C, C++ |
YES |
YES |
YES | YES | YES | YES |
Objective-C |
YES | YES | YES | YES | YES | YES |
Fortran 77,
Fortran 95 |
77 |
77 |
NO |
NO | NO | NO |
wxWidgets |
YES | YES | YES | YES | YES | YES |
GTK+ |
YES | YES | NO | TBD | NO | YES |
FLTK |
YES | YES | YES | YES | YES | YES |
Allegro |
YES | YES | YES | YES | YES | YES |
Tool or Library |
Win32 |
Mac OS X |
---|---|---|
C/C++ compiler toolchain (gcc) |
3.4.6 (MinGW) |
4.0.1 ("darwin9 fat binaries") |
Fortran?
|
Yes |
No |
Objective-C?
|
Yes |
Yes |
libiconv |
1.9.1 |
1.9.1 |
libxml2 |
2.6.31 |
2.6.31 |
regular expression library |
PCRE
7.6 |
Native |
pthreads library |
POSIX
Threads for Windows 2-8-0 |
Native |
zlib
compression/decompression library |
1.2.3 |
Native |
wxWidgets cross-platform toolkit |
2.8.9 ANSI |
2.8.9 Unicode or ANSI |
GTK+
cross-platform toolkit library, and associated libraries such as those listed just below. |
2.14.7-1 |
2.14 latest (Mac OS X 10.5 only Intel only) |
glib
|
2.18.4-1 |
At
present, it is not feasible to build these libraries from source, so we accept whatever is buildled with the pre-built GTK+ binaries, and that may differ for each person who downloads them. For now, we simply assume that the versions are the same or later than the Win32 versions listed to the left. |
pango
|
1.22.4-1 |
|
atk
|
1.24.0-1 |
|
cairo
|
1.8.6-1 |
|
gettext
|
0.17-1 |
|
libpng
|
1.2.34-1 |
|
libjpeg
|
6b-4 |
|
libtiff
|
3.8.2 |
|
freetype
|
2.3.6 |
|
fontconfig
|
2.4.2-tml-20071015 |
|
expat
|
2.0.0 |
|
FLTK
cross-platform
toolkit library |
1.1.9 |
1.1.9 |
Allegro
cross-platform toolkit library |
4.2.2 |
4.2.2 |
readline
command-line editing library |
5.0-1 |
6.0 (Note that the native Mac OS X "readline" is
really editline, a
partial work-alike, which is why we supply a replacement for it.) |
Installation-program builder |
InstallJammer 1.2.5 for Linux/Win32 | IMCROSS
templates and documentation |
Description
of "contributed" library |
Windows? |
Mac
OS X? |
Samples? |
Installed by IMCROSS defaults? |
Status
(based informal checkout or developer comments only) |
Credits |
---|---|---|---|---|---|---|
Open Lock Daemon (OLD) (libold) | YES |
YES |
YES |
NO |
Functional. |
Ron Burkey |
Simple Directmedia Layer (SDL) library | YES |
YES |
YES |
NO |
Partially
functional (no work in progress). |
Ron Burkey |
GNOME Structured File Library (libgsf) | YES |
NO |
Functional
in
Windows, not yet in Mac OS X, no sample program. |
Eric Smith |
||
Qt 4 cross-platform toolkit |
YES |
YES |
NO |
So far, for Windows
only. Note that the Qt
libraries, include files, utilities, etc., are installed in a
non-standard IMCROSS
location. Rather than being in .../i386-mingw32/lib,
.../i386-mingw32/include, etc., they are installed in
.../i386-mingw32/qt4/lib, .../i386-mingw32/qt4/include, etc. This
is similar to what happens in a native Linux Qt installation, so I'm not inclined
to change it. |
Sebastian
Held |
Xcode
version |
Instructions
for preparing entirely in Linux |
Instructions
for preparing with some Mac OS X assistance |
Xcode
3.x (for current version of IMCROSS) |
(These
instructions tested with Xcode 3.1.2 build 2621)
|
(These
instructions tested with Xcode 3.0)
|
Xcode
2.2.1 (for original version of IMCROSS) |
Not
tried. However, a simplified variant of the Xcode 3 instructions
above, without steps 5-7, may work for you. |
|
Xcode
2.5 (used by some people in place of 2.2.1 for original version of IMCROSS) |
Not tried. However, a simplified variant of the Xcode 3 instructions above, without steps 5-7, may work for you. |
|
Library |
Windows
static link? |
Windows DLL? |
Mac OS X? |
---|---|---|---|
PCRE (regular expressions) | YES |
n/a (native) |
|
POSIX Threads for Windows | YES |
YES |
n/a (native) |
zlib |
YES |
Native system .dylib |
|
wxWidgets |
YES |
YES |
IMCROSS static and .dylib |
GTK+ and friends (glib,
pango,
etc.) |
YES |
GTK+ .dylib (needs to be included with the executable) |
|
Allegro |
YES |
YES |
IMCROSS static |
FLTK |
YES |
IMCROSS static |
|
libiconv |
YES |
YES |
IMCROSS static |
libxml2 |
YES |
IMCROSS static |
|
readline |
YES (in theory) |
YES |
IMCROSS static |
Version |
Link |
Win32
target |
Mac
OS X target |
Tested |
Comments |
---|---|---|---|---|---|
April 26, 2009 |
IMCROSS-20090426.tar.gz |
readline
5.0-1 (New!) |
readline-6.0
(New!) |
Build platforms Ubuntu 8.04 65-bit Fedore Core 5 32-bit Target platforms Mac OS X 10.5.6 Intel Mac OS X 10.4.11 PPC Windows XP Home |
[Focus of this version:
Minor features and updates.] The GNU readline library has been added to the core functionality, because I found that I needed it. The Windows version used is older, because patches are needed for the Windows platform that don't seem to be available with newer versions. It should be noted that while Mac OS X appears to have readline, what it really has is a partial work-alike (editline) that is not 100% API-compatible. Pay special attention to the make-rules for the sample program provided to see how to override the Mac OS X native library, if you wish to do so. wxWidgets now builds both static and shared libraries. However, the shared libaries are only lightly tested at this point. On Windows, SDL now builds static libraries from source rather than installing a binary tarball of dynamic libraries. Some of the observed deficiencies which caused the prebuilt binaries to be used previously turn out to be due to a generic problem (and workaround) with SDL on Windows rather than with the library build as such. InstallJammer has been updated to v1.2.12 (from 1.2.5). I can't give you any specific reason for making this change. Updating If you have already cross-built SDL, you'll have to undo it with the following manual steps in the IMCROSS installation directory: delete i386-mingw32/bin/SDL.dll, i386-mingw32/bin/sdl-config, i386-mingw32/include/SDL/, and i386-mingw32/lib/*sdl*. In the IMCROSS build directory, remove Contributed/SDL/setup*. Then rebuild IMCROSS. Note also the changes in the workaround that will have to be made to the build-procedure for your SDL-based application code. |
March 21, 2009 |
IMCROSS-20090321.tar.gz |
(No change) |
(No change) |
Build platforms OpenSUSE 11.1 Fedora 10 Ubuntu 8.10 Target platforms Mac OS X 10.5.6 Intel Mac OS X 10.4.11 PPC Mac OS X 10.3.9 |
[Focus of this version:
Mac tools on gcc 4.3 platforms] Thanks to Thomas Giesel, IMCROSS's Mac OS X tools can now build on gcc 4.3 platforms. As Thomas has pointed out, the problem is not gcc 4.3 at all; rather, it is a goofy bug in glibc 2.8, which just coincidentally appears on the same machines. At any rate, Thomas has tracked down this problem and supplied a fix for it, so as far as I know the full range of IMCROSS tools and libraries can now be built on any gcc 4 Linux platform. Updating Simply run 'make'. |
February 19, 2009 |
IMCROSS-20090219,tar,gz |
(No change) |
(No change) |
Build platforms Fedora 8 32-bit |
[Focus of this version:
Bug fix.] The ANSI vs. Unicode feature of yesterday's snapshot had a bug, in that the disabling of Unicode-enabled builds of wxWidgets for Win32 was not done correctly. This causes a failure to install IMCROSS on systems which have a Unicode-enabled native wxWidgets installed. Updating There is no need for this bug fix unless you used yesterday's snapshot and experienced a failure. If so, simply download and re-run 'make'. |
February 18, 2009 |
IMCROSS-20090218,tar,gz |
(No change) |
(No change) |
Build platforms Fedora 8 64-bit Ubuntu 8.04 64-bit (K)ubuntu 8.04 32-bit Target platforms Mac OS X 10.5.6 Intel Mac OS X 10.4.11 PPC |
[Focus of this version:
Mac OS X Tools on 64-bit Linux distributions.] Mac OS X Tools: Thanks to John Meacham, we have a fix for the problem of not being able to build the Mac OS X toolchain and libraries in 64-bit Linux. In other words, you can now build the Mac OS X toolchain and libraries in 64-bit Linux without using a funky workaround. wxWidgets: In previous snapshots, we always did an ANSI build for Win32 and a Unicode build for the Mac. Now we instead try to match the build types to the build type for the native Linux wxWidgets. This works if the native build is ANSI. However, if the native build is Unicode, we will still make the Win32 build ANSI since we don't yet have the capability of doing a Win32 Unicode build. These are just the defaults; the setting can be customized using the WX_TYPE variable. Updating At last an easy one! There's no good reason to upgrade unless you are on a 64-bit Linux box and want to use the Mac OS X tools and libraries. Just run 'rm setup_macosx* ; make', remembering of course that if you haven't been building the Mac tools then you may not have all of the prerequisites listed in the build-instructions. |
February 15, 2009 |
IMCROSS-20090215.tar.gz |
wxWidgets 2.8.9 gtk+ 2.14.7 |
wxWidgets
2.8.9 gtk+ 2.14.7 (New! 10.5 Intel only) |
Build
platforms Fedora Core 1 32-bit Fedora Core 5 32-bit Fedora Core 6 32-bit Fedora 7 32-bit Fedora 8 32-bit Fedora 9 32-bit Fedora 10 32-bit OpenSUSE 10.1 32-bit OpenSUSE 10.3 32-bit OpenSUSE 11.1 32-bit (K)ubuntu 7.04 32-bit (K)ubuntu 8.04 32-bit Ubuntu 8.04 64-bit Ubuntu 8.10 32-bit (The red platforms cannot build the Mac toolset.) Target platforms Windows XP Home Mac OS X 10.4 PPC Mac OS X 10.5 Intel |
[Focus of this version:
Support for Intel architecture and XCode 3 on Mac OS X 10.5, addition
or updating of gtk+ and wxWidgets support
for
all platforms, bugs on various build-platforms fixed,
auto-configuration.] General:
In spite of the vast number of changes, the principal reason for updating would be to get improved Mac OS X support, so read the limitations discussed above to see if you will even be able to build the Mac tools and libraries. Because the changes are so major, if you wish to upgrade I'd suggest the following:
|
June 4, 2008 |
IMCROSS-20080604.tar.gz |
(No core change) |
(No change) |
SUSE 10.0 Windows XP Home Fedora 9 |
[Focus of this version:
Contributed features.] Sebastian Held's contributed Qt 4.4 build for Windows now has a sample program, and I'm willing to say that it works, and hence that Qt is working. I did encounter problems with a different sample program, but I think that may be either error on my own part, or else some interaction between Qt and MinGW that you'd have encountered even without cross compiling. I fixed a problem with the installation of the Qt utilities, in that their naming had to be changed in order to be consistent with Qt's qmake utility. Specifically, the utility programs named 'moc', 'rcc', and 'uic' had to be renamed 'moc.exe', 'rcc.exe', and 'uic.exe', even though they are in fact Linux programs rather than Windows programs. Without this renaming qmake may create application-code Makefiles that abort due to not being able to find the appropriate utility programs. Developer system requirements: No change from 20080603. Updating: The same comments apply as for 20080603, with one addition: if you already installed Qt using the 20080603 IMCROSS snapshot, you need to make the following mods to the installation: cd
where/you/installed/IMCROSS/i386-mingw32/qt4/bin
If Qt is enabled, then 'make
samples' should now be able to build sample_Qt.exe
for you.ln --symbolic moc moc.exe ln --symbolic rcc rcc.exe ln --symbolic uic uic.exe |
June 3, 2008 |
IMCROSS-20080603.tar.gz |
(No core
change) |
(No change) |
SUSE 10.0 |
[Focus of this version:
Contributed features.] The contributed Qt 4.4 now cross-compiles for Windows. (Thanks to Sebastian Held!) I have personally tested merely that the build goes through to completion, and don't yet have a sample program working. Hopefully, I'll be able to rectify that in a day or two. Sebastian reports that Qt works, but I have had to make a few modifications, so don't blame him if it isn't really fully working yet. As usual with contributions, the build is inhibited by the presence of the constant NO_Qt=yes in the default configuration. If you have a custom configuration, and don't want Qt, it would be a good idea to add this constant since the build takes a monstrously long time! Since there is no sample program yet, Contributed/Qt/Makefile.win32 contains some abbreviated instructions for compiling application code using the library. There is now a GIT repository for IMCROSS, created by Johannes Schindelin. Thanks, Johannes! I now have information on cross-compiling from Linux to an iPhone/iPod Touch target system. (Thanks to Jason Pollock.) I'm undecided as yet whether to try and incorporate this into IMCROSS. If anyone has an opinion, please let me know. Various fixes related to portability of the IMCROSS installer. If you're happy with your installation, you don't need them. Developer system requirements: If you want to install Qt, there will be approximately 95 MB of additional downloads and approximately 76 MB extra of libraries and what-not after installation. Updating: If you want to install Qt, make sure that 'NO_Qt=yes' is commented out in the default or custom configuration file, and then do 'make'. You don't need to rebuild the sample programs, since there's no sample program for Qt yet. If you don't want Qt, make sure there's a line reading 'NO_Qt=yes' in your custom configuration file (if any), but you don't need to actually do anything else. |
Current ... |
RegressionTests-windows.zip |
If you simply want to try the cross-compiled sample programs without installing IMCROSS to see what you'd be getting or to help us perform testing, you can download just the pre-compiled sample programs. | |||
RegressionTests-macosx.tar.gz |
|||||
Older ... |
Older-changes page | The table you're
reading now contains
the change-log just for current or recent versions of IMCROSS. If
you to look at the change-log for older versions,
please visit the older-changes page. |
|||
GIT repository | Older
tarballs are routinely eliminated from the IMCROSS site as a space-saving
measure, but you can visit the GIT repository
created by Johannes Schindelin (thanks, Johannes!) if you want to
retrieve their contents. Since the GIT repository is maintained
independently of IMCROSS, it
may lag the current development snapshot somewhat. |
Default
IMCROSS installation directories |
||||
${PREFIX_WIN32}/ |
For IMCROSS versions prior to 02/2009,
the default was /usr/local/, whereas it is now ~/IMCROSS. Set
${SUDOWIN} to "sudo" or to
"" to control write-access by IMCROSS
to this directory, depending on whether or not root access is required. |
|||
bin/ |
This is where you find links to
programs like i386-mingw32-gcc
and powerpc-apple-darwin9-gcc. |
|||
${TARGET_WIN32} |
By default,
"i386-mingw32-". |
|||
bin/ |
*.exe, *.dll, shell scripts like
wx-config, etc. |
|||
lib/ |
*.a |
|||
include/ |
*.h |
|||
man/ |
man pages for i386-mingw32 |
|||
qt4/ |
bin/, include/, lib/, etc. for the contributed Qt library, if enabled. | |||
etc. |
||||
${JAMMER_DIR}/ |
Where InstallJammer is installed. For IMCROSS versions prior to 02/2009, the default was /usr/local/InstallJammer, whereas it is now ~/IMCROSS/InstallJammer. Set ${SUDOJAM} to "sudo" or to "" to control access by IMCROSS to this directory. | |||
${PREFIX_MACOSX}/ |
|
|||
SDKs/ |
Apple SDKs. |
|||
bin/ |
Executables, shell scripts like wx-config, etc. |
|||
lib/ |
*.a |
|||
libexec/ |
*.dylib |
|||
include/ |
*.h |
|||
etc. |
If you simply want
to try the cross-compiled sample programs before installing IMCROSS to
see what you'd be getting or to help us perform testing, it is possible
to download just the pre-compiled sample
programs (except for gtk+ sample programs which are just too darned
big). |
Sample
Program |
Target System |
Language |
Description |
sample_CommandLine.exe |
Windows |
C |
"Hello,
world!" For Mac OS X, this is one of the sample programs that includes a PPC64 architecture. |
sample_CommandLine | Linux |
||
sample_CommandLine_macosx_fat |
Mac OS X |
||
sample_Fortran.exe |
Windows |
Fortran |
Enter the integer lengths of 3 sides of a triangle, and the program will print the lengths along with the area of the triangle. Hint: After running the program, you'll be presented with a blank line; enter "2 3 4", without the quotes. I cut-and-pasted this program from the Wikipedia article on Fortran, and then modified it substantially to make it work. (Alas! while I was an expert in Fortran 25 years ago, I couldn't write a line of it to save my own life now.) |
sample_Fortran | Linux |
||
sample_gtk_dynamic.exe | Windows |
C |
A
sort
of tic-tac-toe game. It's not really tic-tac-toe, but it's an
array of 3×3
squares; you click on the squares until you have 3 in a row
(horizontally, vertically, or diagonally), and then a congratulatory
message appears. This is an example program from the GTK+
tutorial, and not something I've created. The suffix "_dynamic"
appears to remind you that you need DLLs to run the program. The program sample_gtk_installer.exe is a Windows installer for sample_gtk_dynamic.exe. There is also a Mac OS X package IMCROSS-gtk.app.tar.gz. In general, these are not provided online here and have to be rebuilt locally, because the necessary inclusion GTK+ dll or dylib libraries makes them too big to be worth it for me to waste the bandwidth providing them to you. |
sample_gtk_installer.exe |
|||
sample_gtk | Linux |
||
sample_gtk_macosx_i386 |
Mac OS X |
||
sample_libxml2.exe |
Windows |
C |
Reads
a specified input XML file from a file listed on the command
line, and outputs info about the elements found in it to the standard
output. I didn't actually write this; it's a sample program from
libxml2 itself. If you want to modify this sample program, be
sure to read the copyright notice in the accompanying file. |
sample_libxml2 |
Linux |
||
sample_libxml2_macosx_fat |
Mac OS X |
||
sample_Objective-C.exe |
Windows |
Objective-C |
Simply displays the message "Recipient says hello!", but does it using the extremely funky methods of Objective-C, with "message passing". The source code was cut-and-pasted from the Wikipedia article on Objective-C, and therefore is under the GNU Free Documentation License (FDL). What that says about reusability of the code, I can't begin to say! |
sample_Objective-C |
Linux |
||
sample_Objective-C-2.exe |
Windows |
Objective-C |
An
alternate "Hello, world!" program in Objective-C. |
sample_Objective-C-2 |
Linux |
||
sample_Objective-C-2_macosx_fat |
Mac OS X |
||
sample_pthreads_dynamic.exe |
Windows |
C |
Runs main plus two
threads. The main
program
prints a message once per second for 30 seconds, while thread
#1 prints a message once per second for 10 seconds and thread #2 prints
a message once per second for 20 seconds. Note that
in Windows, pthreadGC2.dll must be used with the "dynamic" version of
the sample
program. |
sample_pthreads.exe |
|||
sample_pthreads | Linux | ||
sample_pthreads_macosx_fat |
Mac OS X |
||
sample_RegularExpressions | Windows |
C |
A super-simplified grep, that lists all of the lines in an input file which contain a specified regular expression. Use the "--help" switch for usage info. |
sample_RegularExpressions | Linux |
||
sample_RegularExpressions_macosx_fat |
Mac OS X |
||
sample_wxWidgets-2.8.exe | Windows |
C++ |
Demos
various stuff you can do with the wxWidgets
wxTextCtrl
class. If you run it, its usage will be self-explanatory. I
didn't write it; I just copied it directly from the samples/text
directory of the wxWidgets-2.8.7 source tree. Consult the wxWidgets licensing info if you want
to mod it. Deploy to Mac OS X by copying the tarball onto the desktop. When the user double-clicks it, an icon for the application will appear on the desktop. |
sample_wxWidgets | Linux |
||
IMCROSS-wxWidgets.app.tar.gz |
Mac OS X |
||
sample_zlib.exe | Windows |
C |
Decompresses
or tests the integrity of a file compressed with gzip, just like gunzip or 'gzip -d', but without all
the fancy options. This is a sample program from the zlib
source tree, although I had to make a couple of trivial modifications
to get it to compile and run on Windows. These changes are noted
within the comments of the source file. As usual, check the
licensing within the sample file
if you want to reuse the code. It turns out that the sample program apparently uses a feature of zlib that was only introduced at zlib 1.2.3. I don't know when zlib 1.2.3 began to be used on Mac OS X, but I do know that it was not yet in use for Mac OS X 10.2.8, and therefore the sample program will not run on Mac OS X 10.2.8 or prior. |
sample_zlib | Linux |
||
sample_zlib_macosx_fat |
Mac OS X |
||
sample_allegro_dynamic.exe | Windows |
C |
A
simple shoot-em-up game, complete with graphics and audio. This
was copied right out of the Allegro
source tree. The license is "gift-ware", so I don't suppose thare
are any restrictions on it, but as always you should verify it for
yourself rather than relying on my judgement. In Windows, if you want to run this sample program, make sure you add the files demo.dat and readme.txt (from the Samples/allegro directory) to the directory containing the executable. Since the Allegro library is provided in both static and DLL forms by IMCROSS in Windows, both statically-linked and DLL-based forms of the sample program are provided as well. In Mac OS X, deploy by copying the tarball onto the desktop. When the user double-clicks it, an icon for the application will appear on the desktop. This sample program is unique among the various GUI-based sample programs, in that it is the only one which will run on Mac OS X versions as early as 10.2. |
sample_allegro.exe | |||
sample_allegro | Linux |
||
IMCROSS-allegro.app.tar.gz |
Mac OS X |
||
sample_fltk.exe |
Windows |
C++ |
A
Mandelbrot fractal viewer. (Hint: right-click the mouse at
various points in the graphic.) I
copied this program from the FLTK
source tree. Note that
in Windows the threaded FLTK
applications
require distribution of the pthreads-w32
file "pthreadGC2.dll", but this particular sample program is not
threaded and doesn't need it. On the Windows architecture, there is another cross-compiled FLTK based program that might be of some interest. Though not an IMCROSS sample program as such (because it doesn't obviously illustrate the methods used for cross-compilation), you'll find a utility called fluid.exe, which is a cross-compiled version of the fluid rapid-application development program distributed with FLTK. I don't think there's much need for it, since the native Linux version of fluid is what you'll want to use, but it's still mildly interesting. I don't cross-compile fluid in Mac OS X. Deploy to Mac OS X by copying the tarball onto the desktop. When the user double-clicks it, an icon for the application will appear on the desktop. |
sample_fltk |
Linux |
||
IMCROSS-fltk.app.tar.gz |
Mac OS X |
||
sample_readline.exe |
Windows |
C |
This is a simple command-line program
that accepts commands you type in, and then displays them after you
type them it. However, it provides all of the editing and history
features of readline, such as
scrolling forward and backward through the command history, or
searching the command history. |
sample_readline |
Linux |
||
sample_readline_macosx_fat |
Mac OS X |
Sample
Program |
Target System |
Language |
Description |
Contributed/Qt/sample_Qt.exe |
Windows |
C++ |
Trolltech Qt 4. The sample program is one of the example programs from the Qt 4.4 source tree. It is a trivial wizard (in fact, it's called "trivialwizard") which purports to collect registration info from you ... but doesn't really send any information to me! Note that the Windows version of the sample program requires QtCore4.dll, QtGui4.dll, and libpng13.dll at runtime. It may or may not be worth noting that this is not the first Qt example program I tried. The first, "portedasteroids", is apparently a game similar to our Allegro sample program. It cross-compiled without error, but I couldn't get it to run in Windows. On the other hand, I couldn't even get it to compile natively in Linux, so I don't necessarily claim that it was IMCROSS's fault. |
Contributed/Qt/sample_Qt | Linux |
||
n/a |
Mac OS X (future) |
||
(none) |
n/a |
n/a |
GNOME Structured File library (libgsf). |
In Contributed/SDL: sample_SDL_checkkeys[.exe][_macosx_fat] sample_SDL_graywin[.exe][_macosx_fat] sample_SDL_loopwave[.exe][_macosx_fat] sample_SDL_testalpha[.exe][_macosx_fat] sample_SDL_testbitmap[.exe][_macosx_fat] sample_SDL_testblitspeed[.exe][_macosx_fat] sample_SDL_testcdrom[.exe][_macosx_fat] sample_SDL_testcursor[.exe][_macosx_fat] sample_SDL_testdyngl[.exe][_macosx_fat] sample_SDL_testerror[.exe][_macosx_fat] sample_SDL_testfile[.exe][_macosx_fat] sample_SDL_testgamma[.exe][_macosx_fat] sample_SDL_testgl[.exe][_macosx_fat] sample_SDL_testhread[.exe][_macosx_fat] sample_SDL_testiconv[.exe][_macosx_fat] sample_SDL_testjoystick[.exe][_macosx_fat] sample_SDL_testkeys[.exe][_macosx_fat] sample_SDL_testloadso[.exe][_macosx_fat] sample_SDL_testlock[.exe][_macosx_fat] sample_SDL_testoverlay2[.exe][_macosx_fat] sample_SDL_testoverlay[.exe][_macosx_fat] sample_SDL_testpalette[.exe][_macosx_fat] sample_SDL_testplatform[.exe][_macosx_fat] sample_SDL_testsem[.exe][_macosx_fat] sample_SDL_testsprite[.exe][_macosx_fat] sample_SDL_testtimer[.exe][_macosx_fat] sample_SDL_testver[.exe][_macosx_fat] sample_SDL_testvidinfo[.exe][_macosx_fat] sample_SDL_testwin[.exe][_macosx_fat] sample_SDL_testwm[.exe][_macosx_fat] sample_SDL_threadwin[.exe][_macosx_fat] sample_SDL_torturethread[.exe][_macosx_fat] |
Linux
(no
suffix) Windows [.exe] Mac OS X [_macosx_fat] |
C |
The Simple
Directmedia Layer (SDL) library. The sample programs are simply all of the test programs in the SDL source tree. I can't give you an exhaustive explanation of what they do. |
Contributed/old/sample_old.exe |
Windows |
C |
Alberto Bertogli's
Open Lock Daemon (OLD) is a Linux-based program that acts as a
"lock server": clients elsewhere on the network request "locks"
(which are abstract and are not associated with any specific file or
other object) and the lock server grants or denies those locks.
This can be used to allow a distributed set of clients to behave
cooperatively in terms of resources, if they respect the locking
mechanism. Although the server runs only on Linux or perhaps
other *NIX systems, the clients can run on other platforms, and there
is a library, libold, that the
clients use to access the lock server. The sample program is a test program copied from the libold source tree. It is a client program that simply gets a given number of locks (chosen from the command line) from a given running lock server (also chosen from the command line), and then terminates. It was originally conceived as a speed test for the lock server. In addition to demonstrating the libold library, it also verifies at the same time that socket operations work correctly. |
Contributed/old/sample_old |
Linux |
||
Contributed/old/sample_old_macosx_fat |
Mac OS X |
Distro. on build-machine |
gcc |
Bits |
Real vs. Virtual Machine |
Fortran |
Objective C |
Mac OS X |
libxml2 |
GTK+ |
wxWidgets |
FLTK |
Allegro |
---|---|---|---|---|---|---|---|---|---|---|---|
Fedora Core 1 |
3.3.2 |
32 |
Virtual |
Yes | Yes |
Yes (failed) |
No |
Yes |
Yes |
No |
Yes |
OpenSUSE 10.1 |
4.1.0 |
32 |
Virtual |
No |
No |
No |
Yes |
Yes | No |
No |
Yes |
Fedora Core 5 |
4.1.1 |
32 |
Real |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Fedora Core 6 |
4.1.2 |
32 |
Virtual |
Yes | No |
No |
Yes | No | Yes | No |
Yes |
Fedora 7 |
4.1.2 |
32 |
Virtual |
Yes | Yes | Yes | Yes | Yes | No |
No |
Yes |
Fedora 8 |
4.1.2 |
32 |
Virtual |
Yes | Yes | Yes | Yes | Yes | Yes |
Yes |
Yes |
(K)ubuntu 7.04 |
4.1.2 |
32 |
Virtual |
No |
No |
No |
Yes |
No |
No |
No |
Yes |
OpenSUSE 10.3 |
4.2.1 |
32 |
Virtual |
Yes |
Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes |
(K)ubuntu 8.04 |
4.2.4 |
32 |
Virtual |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Ubuntu 8.04 |
4.2.4 |
64 |
Real |
Yes | Yes | Yes (failed) |
Yes | Yes | Yes | Yes | Yes |
Fedora 9 |
4.3.0 |
32 |
Virtual |
Yes | Yes |
Yes (failed) |
Yes |
Yes | Yes | Yes |
Yes |
Fedora 10 |
4.3.2 |
32 |
Virtual |
Yes |
Yes |
Yes (failed) | Yes | Yes | Yes | Yes | Yes |
OpenSUSE 11.1 |
4.3.2 |
32 |
Virtual |
Yes | Yes | Yes (failed) |
Yes | Yes | Yes | Yes | Yes |
Ubuntu 8.10 |
4.3.2 |
32 |
Virtual |
No |
Yes |
Yes (failed) |
No |
No |
No |
No |
No |
Distro. on build-machine |
gcc |
Bits |
Real vs. Virtual Machine |
Fortran |
Objective C |
Mac OS X |
libxml2 |
GTK+ |
wxWidgets |
FLTK |
Allegro |
---|---|---|---|---|---|---|---|---|---|---|---|
(K)ubuntu 8.04 |
4.2.4 |
32 |
Virtual |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Ubuntu 8.04 |
4.2.4 |
64 |
Real |
No |
Yes | Yes |
Yes | Yes | Yes | Yes | Yes |
wxWidgets
release |
Point version |
Works with
IMCROSS—at least for Win32? |
---|---|---|
2.8 |
2.8.9 |
Yes. (This is the current
IMCROSS default, and currently the latest release in the 2.8 series.) |
2.8.7 |
Yes. |
|
2.6 |
2.6.4 |
Yes. (This is the final
point release in the 2.6 series.) |
2.6.3 |
Yes |
|
2.6.2 |
Yes. |
|
2.4 |
2.4.2 |
No, fails to configure.
(It can probably be made to work, but I haven't figured out the secret
maneuvers to do so.) |
2.4.1 |
Same as above. |
|
2.3 |
2.3.4 |
Same as above. |
Original build system | |
export USE_HOME=yes | Use ~/IMCROSS as installation directory for the build |
cd Where/IMCROSS/Makefile/Is/Stored | |
make | Full
build of IMCROSS into ~/IMCROSS |
cd ~ | |
tar --bzip2 -cf IMCROSS-binary.tar.bz2 IMCROSS | |
Cloned machine | |
cd ~ | |
tar --bzip2 -xf IMCROSS-binary.tar.bz2 | Creates
~/IMCROSS directory from binary tarball |
export USE_HOME=yes | |
cd Where/IMCROSS/Makefile/Is/Stored | |
make clean samples | Creates
sample programs and regression_report.log |