| Main page |
| Screenshots |
| Compilation |
| For developers |
| Releases |
Compiling for GNU/Linux using a GNU/Linux system is easy. It should
also work like this on most UNIX-like systems. You simply
./configure, make and make
install. You will need wxWidgets (also known as
wxWindows) version 2.4 with "PrologIO" support enabled. Your
distribution might ship with binary wxWindows packages, but if these
do not have "PrologIO" enabled, you will have to compile
wxWindows for yourself. You might also need to fix lexer.l, as shown
below for Windows compilation.
I have never compiled for Windows using a Windows machine. If you succeed in doing that, please write a short summary of what you did, and I will include it here.
Cross-compiling for Windows using Debian GNU/Linux is fairly easy,
but not as easy as compiling for GNU/Linux. First apt-get
install mingw32 mingw32-binutils mingw32-runtime to get the
cross-platform compiler and a DLL that is needed at runtime. (Note: I
couldn't make it work with mingw32 3.4, you can use 3.3 instead) Then
follow these instructions:
wxMSW-2.4.2.zip).unzip wxMSW-2.4.2.zip (This creates the directory
wxWindows-2.4.2 containing the source code.)cd wxWindows-2.4.2dos2unix config.guess config.sub (You have to
convert these files to the UNIX text format, with linefeed
indicating a new line.)chmod a+x config.guess config.subdos2unix $(find . -name configure.in) (Convert all
the configure.in files to UNIX text format)autoconf; (cd contrib; autoconf); (cd demos; autoconf);
(cd samples; autoconf); (cd utils; autoconf) (The configure
scripts shipped does not
seem to work for cross-compilation, so we have to generate new
ones.)mkdir /home/christian/software/wxWindows (Make a
directory to install wxWindows in.)./configure
--prefix=/home/christian/software/wxWindows
--host=i586-mingw32msvc --enable-debug --disable-compat22
--enable-prologio (Instead of --enable-debug, you might want
--enable-optimise; to get a smaller DLL you can use
--disable-protocols --disable-sockets --disable-ipc
--disable-timedate
--disable-dialupman --disable-apple_ieee --disable-fraction
--disable-geometry --disable-fs_inet --disable-fs_zip
--disable-mshtmlhelp --disable-clipboard --disable-dnd --disable-gif
--disable-iff --disable-pnm --without-libtiff)sed 's/yy_current_buffer/YY_CURRENT_BUFFER/g'
src/common/lexer.l > /tmp/lexer.lmv /tmp/lexer.l src/common/lexer.l (Unless we
change lexer.l like this, wxWindows won't compile.)makemake installrm
/home/christian/software/wxWindows/lib/libwx_mswd-2.4-i586-mingw32msvc.dll (The installation procedure makes one big error: it installs $prefix/lib/libwx_mswd-2.4-i586-mingw32msvc.dll as a symbolic link to itself. So you have to remove it and install it yourself)cp lib/libwx_mswd-2.4-i586-mingw32msvc.dll
/home/christian/software/wxWindows/lib/dos2unix
/home/christian/software/wxWindows/bin/wx-configWhen you have successfully compiled wxWindows for Windows, go to
the MathMoon directory and do WXCONFIG=/path/to/bin/wx-config
./configure --host=i586-mingw32msvc, followed by
make. Then find . -name '*.dll' and copy
these to appropriate places in a Windows system (I suggest the same
directory as the main executable). Also copy the mingw32 DLL and the
newly compiled wxWindows DLL to appropriate places (perhaps C:\Windows
or the same directory as the main executable). Finally, get the
executable from ./src/.libs/mathmoon.exe and place in the
same directory as the module DLL:s. Find all the images and HTML files
and place them there too. If you like one of the translation files in
the po directory, copy the .mo file to mathmoon.mo and
put it in the same directory. Now it should be possible to run the
program.