Compiling MegaZeux: Difference between revisions
(Reformat page) |
(→Windows: Add instructions for 32-bit builds) |
||
Line 19: | Line 19: | ||
==Windows== | ==Windows== | ||
For compiling MegaZeux with Windows, the generally supported POSIX platform is [https://www.msys2.org/ '''MSYS2''']. Other available options include MINGW32/msys, Cygwin, etc., but are typically more complicated than MSYS2. Download and install '''MSYS2''' before continuing. | For compiling MegaZeux with Windows, the generally supported POSIX platform is [https://www.msys2.org/ '''MSYS2''']. Other available options include MINGW32/msys, Cygwin, etc., but are typically more complicated than MSYS2. Download and install '''MSYS2''' before continuing. If you are using a 64-bit operating system, follow the 64-bit instructions below. If you are using a 32-bit operating system, follow the 32-bit instructions below. | ||
===Windows with MSYS2 (64-bit)=== | |||
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 '''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}") | ||
First, run this command. MSYS2 will need to restart when it is finished. | First, run this command. MSYS2 will need to restart when it is finished. | ||
Line 29: | Line 30: | ||
After restarting MSYS2, run the following commands. | After restarting MSYS2, run the following commands. | ||
yes Y | pacman -Su | |||
yes Y | pacman -S git | yes Y | pacman -S git | ||
yes Y | pacman -S make | yes Y | pacman -S make | ||
Line 43: | Line 45: | ||
make | make | ||
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. | 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. Otherwise, MegaZeux will not be able to start from Explorer. | ||
The following optional packages may be of use. They are not required or are part of the packaging process for some architectures. | The following optional packages may be of use. They are not required or are part of the packaging process for some architectures. | ||
Line 51: | Line 53: | ||
yes Y | pacman -S mingw-w64-x86_64-clang | yes Y | pacman -S mingw-w64-x86_64-clang | ||
yes Y | pacman -S mingw-w64-x86_64-imagemagick | yes Y | pacman -S mingw-w64-x86_64-imagemagick | ||
===Windows with MSYS2 (32-bit)=== | |||
Run '''mingw32.exe''' in the ''msys2'' directory. You will be in the "{MSYS DIRECTORY}\home\{your username}\" directory. (This will display in the mingw32 shell as either "~" or "/home/{your username}") | |||
First, run this command. MSYS2 will need to restart when it is finished. | |||
yes Y | pacman -Syu | |||
After restarting MSYS2, run the following commands. | |||
yes Y | pacman -Su | |||
yes Y | pacman -S git | |||
yes Y | pacman -S make | |||
yes Y | pacman -S mingw-w64-i686-zlib | |||
yes Y | pacman -S mingw-w64-i686-gcc | |||
yes Y | pacman -S mingw-w64-i686-gdb | |||
yes Y | pacman -S mingw-w64-i686-libpng | |||
yes Y | pacman -S mingw-w64-i686-libogg | |||
yes Y | pacman -S mingw-w64-i686-libvorbis | |||
yes Y | pacman -S mingw-w64-i686-SDL2 | |||
git clone https://github.com/AliceLR/megazeux.git | |||
cd megazeux | |||
./config.sh --platform win32 | |||
make | |||
MegaZeux should be built and ready to run! If you are not running MegaZeux from '''mingw32.exe''', add the folder containing your dependencies (generally ''C:\msys32\mingw32\bin'') to your Windows PATH variable. Otherwise, MegaZeux will not be able to start from Explorer. | |||
The following optional packages may be of use. They are not required or are part of the packaging process for some architectures. | |||
yes Y | pacman -S nano | |||
yes Y | pacman -S p7zip | |||
yes Y | pacman -S mingw-w64-i686-clang | |||
yes Y | pacman -S mingw-w64-i686-imagemagick | |||
===Troubleshooting=== | ===Troubleshooting=== | ||
- ''"The program can't start because ___.dll is missing."'' | - ''"The program can't start because ___.dll is missing."'' | ||
If you are | If you are running MegaZeux from Explorer, add the folder containing your dependencies (generally ''C:\msys64\mingw64\bin'' or ''C:\msys32\mingw32\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)'' | - ''"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. | 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. | ||
==Ubuntu/Debian== | ==Ubuntu/Debian== |
Revision as of 02:55, 9 December 2018
Compiling any MegaZeux 2.80 or later 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.
General Commands
./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 Windows the platform is either "win64" or "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. This should not be used with the "unix-devel" platform or any other option intended to run straight out of the source directory.
Please see debian/README for more information.
Windows
For compiling MegaZeux with Windows, the generally supported POSIX platform is MSYS2. Other available options include MINGW32/msys, Cygwin, etc., but are typically more complicated than MSYS2. Download and install MSYS2 before continuing. If you are using a 64-bit operating system, follow the 64-bit instructions below. If you are using a 32-bit operating system, follow the 32-bit instructions below.
Windows with MSYS2 (64-bit)
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}")
First, run this command. MSYS2 will need to restart when it is finished.
yes Y | pacman -Syu
After restarting MSYS2, run the following commands.
yes Y | pacman -Su 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-gdb 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 win64 make
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. Otherwise, MegaZeux will not be able to start from Explorer.
The following optional packages may be of use. They are not required or are part of the packaging process for some architectures.
yes Y | pacman -S nano yes Y | pacman -S p7zip yes Y | pacman -S mingw-w64-x86_64-clang yes Y | pacman -S mingw-w64-x86_64-imagemagick
Windows with MSYS2 (32-bit)
Run mingw32.exe in the msys2 directory. You will be in the "{MSYS DIRECTORY}\home\{your username}\" directory. (This will display in the mingw32 shell as either "~" or "/home/{your username}")
First, run this command. MSYS2 will need to restart when it is finished.
yes Y | pacman -Syu
After restarting MSYS2, run the following commands.
yes Y | pacman -Su yes Y | pacman -S git yes Y | pacman -S make yes Y | pacman -S mingw-w64-i686-zlib yes Y | pacman -S mingw-w64-i686-gcc yes Y | pacman -S mingw-w64-i686-gdb yes Y | pacman -S mingw-w64-i686-libpng yes Y | pacman -S mingw-w64-i686-libogg yes Y | pacman -S mingw-w64-i686-libvorbis yes Y | pacman -S mingw-w64-i686-SDL2 git clone https://github.com/AliceLR/megazeux.git cd megazeux ./config.sh --platform win32 make
MegaZeux should be built and ready to run! If you are not running MegaZeux from mingw32.exe, add the folder containing your dependencies (generally C:\msys32\mingw32\bin) to your Windows PATH variable. Otherwise, MegaZeux will not be able to start from Explorer.
The following optional packages may be of use. They are not required or are part of the packaging process for some architectures.
yes Y | pacman -S nano yes Y | pacman -S p7zip yes Y | pacman -S mingw-w64-i686-clang yes Y | pacman -S mingw-w64-i686-imagemagick
Troubleshooting
- "The program can't start because ___.dll is missing."
If you are running MegaZeux from Explorer, add the folder containing your dependencies (generally C:\msys64\mingw64\bin or C:\msys32\mingw32\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.
Ubuntu/Debian
sudo apt-get install gcc g++
Download compilers to build MegaZeux. MegaZeux will also build with clang.
supo apt-get install libpng-dev libogg-dev libvorbis-dev libsdl1.2-dev libsdl2-dev
Download the dependencies required to build MegaZeux.
sudo apt-get install git git clone https://github.com/AliceLR/megazeux.git
Alternatively, download and extract the latest .tar.xz or .tar.bz2 source archive to the desired location.
See the "general commands" section above for more information.
Mac OS X
With MacPorts (testing only)
You will need to install XCode and MacPorts before continuing. This method is suitable only for testing builds, and should not be used to produce releases.
Compile/install dependencies.
sudo port install zlib libpng libogg libvorbis libsdl
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.
Build MegaZeux as usual:
make -j8
Packaging
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.