Compiling MegaZeux
Compiling any MegaZeux 2.8x source requires a POSIX compatible shell (bash, dash) to be installed. Download the source .tar.bz2 or .tar.xz and extract it to a new folder.
Building
./config.sh
This will give you help about how to configure MegaZeux.
./config.sh --platform unix
To configure the sources. On OS X, the platform is "darwin", and on win32 the platform is "win32".
make
This will build MegaZeux from sources. If it fails, you probably don't have one of SDL, libvorbis, libogg, libpng, zlib or the corresponding dev packages installed.
make install
This will install MegaZeux to the system. Do not use for the "unix-devel" platform, which is intended to run straight out of the source directory.
Please see debian/README for more information.
Windows with MSYS2
Download and install msys2 (these instructions are for msys2-x86_64-20161025.exe specifically)
Run mingw64.exe in the msys2 directory. You will be in the "{MSYS DIRECTORY}\home\{your username}\" directory. (This will display in the mingw64 shell as either "~" or "/home/{your username}")
Run the following commands.
yes Y | pacman -S git yes Y | pacman -S make yes Y | pacman -S mingw-w64-x86_64-zlib yes Y | pacman -S mingw-w64-x86_64-gcc yes Y | pacman -S mingw-w64-x86_64-libpng yes Y | pacman -S mingw-w64-x86_64-libogg yes Y | pacman -S mingw-w64-x86_64-libvorbis yes Y | pacman -S mingw-w64-x86_64-SDL2 git clone https://github.com/AliceLR/megazeux.git cd megazeux ./config.sh --platform win32 --enable-libsdl2 make xmp make
Note that the "make xmp" is mandatory, as this is a mandatory dependency not yet in the msys2 repository.
MegaZeux should be built and ready to run! If you are not running MegaZeux from mingw64.exe, add the folder containing your dependencies (generally C:\msys64\mingw64\bin) to your Windows PATH variable.
Ubuntu/Debian
sudo apt-get install gcc g++
We need compilers!
supo apt-get install libsdl1.2-dev libogg-dev libvorbis-dev libpng-dev
Download our dependencies.
The above instructions should work now.
Mac OS X with MacPorts (testing only)
You will need to install XCode and optionally MacPorts before continuing. This method is suitable only for testing builds, and should not be used to produce releases.
Install the toolchain we'll use in MacPorts.
sudo port install gcc6 binutils
Compile/install dependencies.
sudo port install zlib libpng libogg libvorbis libxmp libsdl libsdl2
Navigate to the extracted source directory. If you're building MZX 2.90 and under, please download this updated Makefile.in and put it in arch/darwin/, otherwise MegaZeux will fail to compile.
Run ./config.sh. Consider the following flags:
--platform darwin ---------- Mandatory. --prefix /opt/local ---------- Mandatory. --disable-libsdl2 ---------- MegaZeux may or may not build with the SDL 2 in MacPorts. --disable-utils ---------- This disables compilation of utilities such as downver and checkres. This is optional. --enable-release ---------- Removes debug symbols. This will make the package smaller if you intend on installing MZX in app form.
Run make, overriding the default compiler flags:
make -s CC=gcc CXX=g++
Packaging
Mac OS X
Make sure there is not a "MegaZeux" volume mounted before continuing.
rm -r build/ make lipo make archive
A .dmg will appear in build/arch/darwin/. Please refer to the documentation in arch/darwin/ for more details.
Troubleshooting
Windows
- "The program can't start because ___.dll is missing."
If you are not running MegaZeux from mingw64.exe, add the folder containing your dependencies (generally C:\msys64\mingw64\bin) to your Windows PATH variable.
- "The procedure entry point inflateReset2 could not be located in the dynamic link library zlib1.dll." (and similar errors)
This can happen because the Windows PATH variable contains a directory older copy of zlib1.dll (or the DLL in question). You can use where zlib1.dll in Command Prompt to view the different PATH locations that contain the DLL, as well as the order in which Windows will try to load it.