Compiling vice-2.6.1 from tar.gz

From Jay's Cafe' Wiki

This page is an adaptation of the GTK3 build instructions included in the text file '''vice-3.6.1/doc/building/Windows-MinGW-GTK3-Howto.txt''' included in the archive vice-3.6.1.tar.gz

  1. Get an updated MSYS2 installation
pacman -Syu
  1. Install the needed components. This may take a good bit of time as the large build environment is constructed of downloaded packages and they are installed. The time needed depends on download speed and how fast your system is running.
pacman -S --noconfirm --needed base-devel git pactoys
pacboy sync SDL2 SDL2_image SDL2_ttf autotools pkg-config gcc ntldd zip: p7zip: subversion: giflib icoutils ffmpeg flac mpg123

Download build and install the XA compiler to handle building of the sid player.

wget https://www.floodgap.com/retrotech/xa/dists/xa-2.3.11.tar.gz
tar xvf xa-2.3.11.tar.gz
cd xa-2.3.13/
make mingw install

compiling takes not much time

Copy the resulting compiled binary into the mingw64 bin where bash can find it.

cp xa.exe /mingw64/bin/xa65.exe

Verify it can be found in the path:

$ xa65 --version
xa (xa65) v2.3.13
Written by Andre Fachat, Jolse Maginnis, David Weinehall and Cameron Kaiser

Copyright (C) 1989-2022 Andre Fachat, Jolse Maginnis, David Weinehall
and Cameron Kaiser.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILIY or FITNESS FOR A PARTICULAR PURPOSE.
  1. Extract the archive
tar xvf vice-3.6.1.tar.gz
  1. Enter the directory and run autogen.sh
cd vice-3.6.1
./autogen.sh
  1. Back out of the directory and make a special working directory for SDL2-VICE. This will allow for the easy compilation of vice-emu with multiple interface options.
cd ..
mkdir sdl2-vice
  1. Now, enter the directory and configure the build. Explanation of the switches below
cd ../sdl2-vice
../vice-3.6.1/configure -C --enable-sdl2ui --disable-pdf-docs --enable-html-docs --enable-platformdox

Much time passes as the build environment is configured for the compilation. When completed, a build [config.log] should be built similar to the linked file.

The last bit of the [configure script's output] contains valuable information about the configuration success of the build. Scrolling back gives something similar to:

----------------------------------------------------------------------

configure summary:

Platform canonical : x86_64-w64-mingw32
Architecture       :
GUI                : SDL2
Multithreaded UI   : no
OpenMP             : yes

SCREEN/UI
---------
Hardware scaling support       : yes

SOUND
-----
FastSID support              : no  (--with/without-fastsid)
ReSID support                : yes (--with/without-resid)
New 8580 filter support      : yes (--enable/disable-new8580filter)
PortAudio sound input support: no  (--enable/disable-portaudio)
SDL sound support            : no  (--with/without-sdlsound)
Catweasel MK3 support        : yes (--enable/disable-catweasel)
HardSID support              : yes (--enable/disable-hardsid)
PCI utils support            : no
MP3 encoding support         : no  (--enable/disable-lame)
MP3 decoding support         : no  (--with/without-mpg123)
FLAC en/de-coding support    : no  (--with/without-flac)
Vorbis en/de-coding support  : no  (--with/without-vorbis)

SCREENSHOTS
-----------
GIF encoding support : no  (--with/without-gif)
JPEG encoding support: no  (--with/without-jpeg)
PNG encoding support : yes (--with/without-png)

VIDEO RECORDING
---------------
FFMPEG support                : no  (--enable-external-ffmpeg)
FFMPEG swscale support        : no

INPUT
-----
Mouse support               : yes
Lightpen support            : yes
SDL joystick support        : yes

MODEM/NETWORK
-------------
Network support                  : yes
RS232 network support            : yes
IPv6 network support             : no  (--enable/disable-ipv6)
Network capture/injection support: no  (--enable/disable-ethernet)
libcurl support                  : no  (--with/without-libcurl)

DRIVE
-----
X64 image support                : no  (--enable/disable--x64-image)

LIBS
----
zlib support                      : yes (--with/without-zlib)

DOCUMENTATION
-------------
Generate Info/text: yes
Generate PDF      : no (install texinfo)
Generate HTML     : yes

MISC
----
65xx CPU history support   : no  (--enable/disable-cpuhistory)
Debug support              : no  (--enable/disable-debug)
Threading debug support    : no  (--enable/disable-debug-threads
Build old x64 emulator     : no (--enable/--disable-x64)
Install XDG .desktop files : no
icotool for Windows found  : icotool

User CPPFLAGS:
VICE_CPPFLAGS:  -I$(top_srcdir)/src/systemheaderoverride -DNDEBUG -mwindows
User CFLAGS:
VICE CFLAGS:    -g -O3 -W -Wall -Wextra -Wformat -Wformat-signedness -Wshadow -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wuninitialized -Wunreachable-code -Werror=implicit-function-declaration -Wfatal-errors -Wdiscarded-qualifiers -Wno-sign-compare -Wno-missing-field-initializers -Wno-ignored-qualifiers -Wno-unused-parameter -Wall -Wno-unused-parameter -Wno-sign-compare -mwindows -fopenmp -Dmain=SDL_main -IC:/msys64/mingw64/include/SDL2 -DHWY_SHARED_DEFINE -DLIBDEFLATE_DLL -Dmain=SDL_main -IC:/msys64/mingw64/include/SDL2 -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include/SDL2
User CXXFLAGS:   -fno-exceptions
VICE CXXFLAGS:  -g -O3 -Wall -Wformat -Wshadow -Wpointer-arith -Wuninitialized -Wunreachable-code -Wno-unused-parameter -Wfatal-errors -Wall -Wno-unused-parameter -Wno-sign-compare -mwindows -fopenmp -Dmain=SDL_main -IC:/msys64/mingw64/include/SDL2 -DHWY_SHARED_DEFINE -DLIBDEFLATE_DLL -Dmain=SDL_main -IC:/msys64/mingw64/include/SDL2 -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include/SDL2
VTE_CXXFLAGS:    -Wno-address-of-packed-member -Wno-char-subscripts -Wno-format-signedness -Wno-c99-designator -Wno-shorten-64-to-32 -Wno-nonnull-compare
MONITOR_CFLAGS:  -Wno-unused-label -Wno-unreachable-code -Wno-misleading-indentation
User LDFLAGS:
VICE LDFLAGS:    -fopenmp
----------------------------------------------------------------------

Now, we are ready to build VICE with the SDL2 user interface.

make -s --no-print-dir
make -s --no-print-dir bindist

and make a zip'd version for portability

make -s --no-print-dir bindistzip

I then copy or copy and extract the files to c:\compiled\VICE using the Windows file manager application.

Adding C:\compiled\VICE to your path enables you to easily access x64sc.exe or others from within other programs such as those published by Style65.org and others.