Menu

Building Fuse on Windows with MinGW-w64 and MSYS2

Sergio Baldoví

1. Introduction

This page describes how to build Fuse on Windows using the MinGW-w64 compiler and MSYS2, an environment that includes a collection of Unix tools. These instructions are correct as of May 2023.

2. Setting up the environment

Download the installer of MSYS2 (64 bits, Windows 8.1+) and run the setup program.

Make sure you update the package database and pacman after the installation:

pacman -Suy

Install the following packages (other dependencies will be automatically selected as well):

pacman -S base-devel
pacman -S autoconf
pacman -S automake
pacman -S libtool
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-libgcrypt
pacman -S mingw-w64-i686-libpng

Start a new shell with the MinGW64 Win32 compiler MSYS2 MINGW32:

C:\msys64\mingw32.exe

and test the compiler availability:

gcc --version

3. Building dependencies

Let's start building some libraries needed by libspectrum and Fuse. Only libspectrum is a requirement for Fuse, the rest provide some features than could be disabled. Normally, you should use the latest version available.

audiofile

Upstream source tarball from <http://audiofile.68k.org/> is outdated (version 0.3.6). Download latest git source code with some Debian patches:
https://github.com/sbaldovi/audiofile/archive/refs/heads/patched.zip

and then build the library:

$ cd audiofile-patched/
$ ./autogen.sh --disable-static --disable-flac --disable-docs --disable-examples
$ make
$ make install-strip
$ cd ..

libxml2

Get the source tarball from <ftp://xmlsoft.org/libxml2/>. The current version is 2.9.12.

$ cd libxml2-2.9.12/
$ ./configure --disable-static --without-iconv --without-python --without-lzma
$ make
$ make install-strip
$ cd ..

libspectrum

Get the source tarball from <http://sourceforge.net/projects/fuse-emulator/files/libspectrum/>. The current version is 1.5.0.

$ cd libspectrum-1.5.0/
$ ./configure --disable-static --with-fake-glib
$ make
$ make install-strip
$ cd ..

4. Building Fuse

Get the source tarball from <http://sourceforge.net/projects/fuse-emulator/files/fuse/>. The current version is 1.6.0.

Patch compat.h file by adding this line:

#include <ws2tcpip.h>

after:

#include <winsock2.h>

Build the program:

$ cd fuse-1.6.0/
$ ./configure --with-win32
$ make
$ make dist-win32-dir
$ cd ..

That should make the fuse-1.6.0-win32/ directory with almost all files.

The executable will need some libraries from c:\msys32\mingw32\bin\ (or /mingw32/bin/):

libaudiofile-1.dll
libbz2-1.dll
libgcc_s_dw2-1.dll
libgcrypt-20.dll
libgpg-error-0.dll
libpng16-16.dll
libspectrum-9.dll
libstdc++-6.dll
libxml2-2.dll
libwinpthread-1.dll
zlib1.dll

Congratulations! You have now built Fuse for Windows from sources.

5. Alternative builds

The SDL UI doesn't look like a native Windows application but has some nice features like full-screen. To build this flavour take these extra steps...

Install the libSDL 1.2 library:

$ pacman -S mingw-w64-i686-SDL

Configure Fuse with these options:

$ ./configure --without-win32 --with-sdl

Finally copy also this library to the fuse-1.6.0-sdl/ directory:

SDL.dll

Related

Wiki: Home

MongoDB Logo MongoDB