SDL2 VICE Cross Compiling on Linux for Windows
From Jay's Cafe' Wiki
GARBAGE DOESN'T WORK - source documentation is more than 5 years old.
Setting up the Mingw32 environment
apt install gcc-mingw-w64-x86-64 build-essential vim-nox exuberant-ctags \ bash-completion g++-mingw-w64-x86-64 binutils-mingw-w64 mingw-w64 \ automake autoconf-archive gnu-standards libtool gettext -y apt install autoconf build-essential byacc flex git subversion \ vim xa65 alien p7zip-full zip texinfo gawk* zip unzip mingw-w64 mingw-w64-tools \ mkdir rpm cd rpm vim files.txt cat files.txt | while read f; do wget -r -l1 --no-parent --no-directories -A "${f}*.rpm" -R "*-static-*" -R "*-tools-*" https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/30/Everything/i386/os/Packages/m/; done; ls rm mingw64-atkmm-2.24.2-7.fc30.noarch.rpm mingw64-cairomm-1.12.0-7.fc30.noarch.rpm mingw64-pangomm-2.40.1-6.fc30.noarch.rpm mingw64-pcre2-10.32-2.fc30.noarch.rpm mkdir ~/deb cd for f in rpm/*.rpm; do alien --to-deb $f; done mv *.deb deb/ cd deb ls for f in deb/*.deb; do dpkg -i $f; done cd .. for f in deb/*.deb; do dpkg -i $f; done ls -l deb | wc -l ls -l rpm | wc -l ls -l deb dir deb dir rpm cp -R /usr/x86_64-w64-mingw32/sys-root/mingw/* /usr/x86_64-w64-mingw32/ cd /usr/x86_64-w64-mingw32/lib/pkgconfig for pc in *.pc; do echo "$pc"; cp "$pc" "$pc.bak"; sed -i 's@/sys-root/mingw@@' "$pc"; done ln -s /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-resources /usr/bin/glib-compile-resources ln -s /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas /usr/bin/glib-compile-schemas ln -s /usr/x86_64-w64-mingw32/bin/glib-genmarshal /usr/bin/glib-genmarshal ln -s /usr/x86_64-w64-mingw32/bin/glib-mkenums /usr/bin/glib-mkenums cd /usr/x86_64-w64-mingw32/share/glib-2.0/schemas glib-compile-schemas cd svn checkout https://svn.code.sf.net/p/vice-emu/code/trunk vice-trunk cd ~/vice-trunk/vice ./autogen.sh cd .. mkdir gtk3-win64-build cd gtk3-win64-build ../vice/configure --enable-native-gtk3ui --host=x86_64-w64-mingw32 ../vice/configure --enable-native-gtk3ui --enable-x64 --host=x86_64-w64-mingw32 make -j 6 2>&1 | tee build.log updatedb locate glib-compile-resources cd /usr/x86_64-w64-mingw32/share/glib-2.0/schemas glib-compile-schemas . cd ln -s /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-resources \ /usr/bin/glib-compile-resources ls -lh /usr/bin/glib-compile-resources ln -lh /usr/lib/glib-compile-schemas ls -lh /usr/lib/glib-compile-schemas ls -lh /usr/bin/glib-compile* apt-cache search glib-compile-resources apt install libglib2.0-bin ls -lh /usr/bin/glib-compile* updatedb locate glib-compile-resources glib-complie-resources apt install libglib2.0-dev-bin ls -lh /usr/bin/glib-compile* apt install autoconf bash-completion build-essential byacc flex git subversion vim xa65 alien p7zip-full zip texinfo gawk* zip unzip mingw-w64 mingw-w64-tools ../vice/configure --enable-native-gtk3ui --enable-x64 --disable-arch\ --host=x86_64-w64-mingw32 --disable-hwscale host_alias=x86_64-w64-mingw32 \ --no-create --no-recursion
Setup the SDL 2.x Libraries
#!/usr/bin/env bash # # SDL Cross-Build Download Script v 1.0 # ===================================== # (c) 2006 Dana Olson <dolson@icculus.org> # Updated 20080617 by Saul D. # Updated 2020 by Jay C. Theriot to use SDL2 libraries # # SDL 1.2 - http://www.libsdl.org/download-1.2.php # SDL_image - http://www.libsdl.org/projects/SDL_image/ # SDL_mixer - http://www.libsdl.org/projects/SDL_mixer/ # SDL_net - http://www.libsdl.org/projects/SDL_net/ # SDL_ttf - http://www.libsdl.org/projects/SDL_ttf/ # Path to install to. Default is /opt/SDL-2.0.12 INSTPATH=$1 if [ "$1" == "" ] ; then INSTPATH=/opt/SDL-2.0.12 echo Install path not specified\; using default. fi # Check and warn if destination exists. if [ -e "$INSTPATH" ] ; then echo WARNING!!! Install path already exists! fi # Allow user to confirm install. echo SDL libraries will be installed to $INSTPATH. echo Press Enter to continue, ^C to abort. read junk # Create the patch and subdirectory. mkdir -p $INSTPATH/archives/ # Make sure the directory could be created. if [ ! -e "$INSTPATH/archives" ] ; then echo Couldn\'t create install path. Aborting. exit 1 fi echo Installing... # Download the SDL archives. Add to this list if you want more libraries. cd $INSTPATH/archives/ for i in \ https://www.libsdl.org/release/SDL2-devel-2.0.12-mingw.tar.gz \ https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip \ https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip \ https://www.libsdl.org/projects/SDL_net/release/SDL2_net-devel-2.0.1-VC.zip \ https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-devel-2.0.11-VC.zip do wget -c $i done cd .. # Extract the main SDL archive. tar zxf archives/SDL2-devel-2.0.12-mingw.tar.gz # Extract the addon archives. for i in archives/*.zip do unzip $i done # Make a directory to hold the SDL runtime for Win32. mkdir SDL-2.0.12/runtime/ # Move all the DLLs and README file into here. mv */*/*.dll SDL-2.0.12/runtime/ mv SDL-1.2.13/README-SDL.txt SDL-1.2.13/runtime/ # Move all the addon libraries into the lib dir. mv SDL_*/*/*.lib SDL-2.0.12/lib/ # Move all the addon headers into the include dir. mv SDL_*/*/*.h SDL-2.0.12/include/ # Remove unneeded directories. rm -rf SDL_*/ # Make a symlink, so that the sdl-config can be found. cd SDL-2.0.12/bin/ ln -s sdl-config i586-mingw32msvc-sdl-config # Patch the sdl-config script to point to install path. echo "--- i586-mingw32msvc-sdl-config" > sdlcfgfix.patch echo "+++ i586-mingw32msvc-sdl-config.fix" >> sdlcfgfix.patch echo "@@ -1,6 +1,6 @@" >> sdlcfgfix.patch echo " #!/bin/sh" >> sdlcfgfix.patch echo " " >> sdlcfgfix.patch echo "-prefix=/Users/hercules/tmp/SDL-1.2.13" >> sdlcfgfix.patch echo "+prefix=$INSTPATH" >> sdlcfgfix.patch echo " exec_prefix=\${prefix}" >> sdlcfgfix.patch echo " exec_prefix_set=no" >> sdlcfgfix.patch echo " " >> sdlcfgfix.patch patch < sdlcfgfix.patch mv sdlcfgfix.patch ../../archives/ # Set proper permissions on some files. cd ../../ chmod -x SDL-1.2.13/lib/* SDL-1.2.13/runtime/* # Move everything into install dir. mv SDL-1.2.13/ tempsdlinstalldir129 mv tempsdlinstalldir129/* ./ rm -r tempsdlinstalldir129/ # Done! echo echo Everything is done! SDL was installed in $INSTPATH. echo This line should work to cross-compile: echo PATH=$INSTPATH/bin:\$PATH ./configure --target=i586-mingw32msvc --host=i586-mingw32msvc --build=i586-linux echo exit 0