213
edits
Ccawley2011 (talk | contribs) |
Ccawley2011 (talk | contribs) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 17: | Line 17: | ||
* [http://www.libsdl.org/download-1.2.php SDL 1.2]. | * [http://www.libsdl.org/download-1.2.php SDL 1.2]. | ||
** You need the latest SDL 1.2 source code revision from | ** You need the latest SDL 1.2 source code revision from GitHub ([https://github.com/libsdl-org/SDL-1.2/tree/99d7f1d1c5492f0fb3c799255042ca7a3f4a5de4 99d7f1d1c5492f0fb3c799255042ca7a3f4a5de4] at the time of writing). | ||
* [https://www.libsdl.org/projects/SDL_net/release-1.2.html SDL_net 1.2]. Optional, for network support. | * [https://www.libsdl.org/projects/SDL_net/release-1.2.html SDL_net 1.2]. Optional, for network support. | ||
Line 26: | Line 26: | ||
* [http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D NASM]. Optional, for faster compile of scalers | * [http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D NASM]. Optional, for faster compile of scalers | ||
** You need the latest Win32 binary ([http://www.nasm.us/pub/nasm/releasebuilds/2.15. | ** You need the latest Win32 binary ([http://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/ v2.15.05] at the time of writing). | ||
* [https://cmake.org/ CMake]. Optional, for compiling libjpeg-turbo. | * [https://cmake.org/ CMake]. Optional, for compiling libjpeg-turbo. | ||
Line 48: | Line 48: | ||
* [https://github.com/knik0/faad2 libfaad2]. Optional, for AAC support. | * [https://github.com/knik0/faad2 libfaad2]. Optional, for AAC support. | ||
** You need the latest libfaad2 source code ([https://github.com/knik0/faad2/releases/tag/ | ** You need the latest libfaad2 source code ([https://github.com/knik0/faad2/releases/tag/2_10_0 v2.10.0] at the time of writing). | ||
* [http://www.libpng.org/pub/png/libpng.html libpng]. Optional, for PNG support. | * [http://www.libpng.org/pub/png/libpng.html libpng]. Optional, for PNG support. | ||
Line 54: | Line 54: | ||
* [http://download.savannah.gnu.org/releases/freetype/ freetype]. Optional, for TTF support. | * [http://download.savannah.gnu.org/releases/freetype/ freetype]. Optional, for TTF support. | ||
** You need the latest freetype source code ([http://download.savannah.gnu.org/releases/freetype/freetype-2.10. | ** You need the latest freetype source code ([http://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.xz v2.10.4] at the time of writing). | ||
* [http://www.fluidsynth.org/ fluidsynth]. Optional, for soundfont MIDI support. | * [http://www.fluidsynth.org/ fluidsynth]. Optional, for soundfont MIDI support. | ||
Line 63: | Line 63: | ||
* [https://libjpeg-turbo.org/ libjpeg-turbo]. Optional, for JPEG support. | * [https://libjpeg-turbo.org/ libjpeg-turbo]. Optional, for JPEG support. | ||
** You need the latest libjpeg-turbo source code ([https://sourceforge.net/projects/libjpeg-turbo/files/2.0. | ** You need the latest libjpeg-turbo source code ([https://sourceforge.net/projects/libjpeg-turbo/files/2.0.6/libjpeg-turbo-2.0.6.tar.gz/download v2.0.6] at the time of writing). | ||
* [http://liba52.sourceforge.net/ liba52]. Optional, for AC-3 support. | * [http://liba52.sourceforge.net/ liba52]. Optional, for AC-3 support. | ||
** You need the latest liba52 source code ([http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz v0.7.4] at the time of writing). | ** You need the latest liba52 source code ([http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz v0.7.4] at the time of writing). | ||
* [https://curl | * [https://curl.se/ libcurl]. Optional, for cloud support. | ||
** You need the latest libcurl source code ([https://curl | ** You need the latest libcurl source code ([https://curl.se/download/curl-7.75.0.tar.xz 7.75.0] at the time of writing). | ||
* [http://glew.sourceforge.net GLEW]. Optional, for hardware acceleration in 3D games. | |||
** You need the latest GLEW source code ([https://sourceforge.net/projects/glew/files/glew/2.1.0/ v2.1.0] at the time of writing). | |||
==== Precompiled libraries ==== | ==== Precompiled libraries ==== | ||
Line 75: | Line 78: | ||
All you need to do is: | All you need to do is: | ||
* Download the precompiled libraries and the [http://www.libsdl.org/release/SDL-1.2.15-win32.zip latest SDL runtime library] - latest version is 1.2.15 at the time this was written, you can find the latest version [http://www.libsdl.org/download-1.2.php here]. Precompiled libraries: | * Download the precompiled libraries and the [http://www.libsdl.org/release/SDL-1.2.15-win32.zip latest SDL runtime library] - latest version is 1.2.15 at the time this was written, you can find the latest version [http://www.libsdl.org/download-1.2.php here]. Precompiled libraries: | ||
** [http:// | ** [http://downloads.scummvm.org/frs/build/scummvm-required-libs-mingw.zip Precompiled libraries] | ||
* Extract them to your MinGW directory (e.g. C:\MinGW) | * Extract them to your MinGW directory (e.g. C:\MinGW) | ||
Line 169: | Line 172: | ||
=== libmad === | === libmad === | ||
Unzip the libmad archive in a folder, open MSYS | Unzip the libmad archive in a folder, open MSYS and go to the libmad folder. If you are using gcc 4.4 or higher, run the following command: | ||
sed -i '/-fforce-mem/d' configure | sed -i '/-fforce-mem/d' configure | ||
Line 302: | Line 305: | ||
Unzip the libjpeg-turbo archive in a folder, open MSYS, go to the libjpeg-turbo folder and issue these commands to compile and install the library: | Unzip the libjpeg-turbo archive in a folder, open MSYS, go to the libjpeg-turbo folder and issue these commands to compile and install the library: | ||
cmake -G "MSYS Makefiles" -DENABLE_SHARED=OFF -DCMAKE_INSTALL_PREFIX= | cmake -G "MSYS Makefiles" -DENABLE_SHARED=OFF -DCMAKE_INSTALL_PREFIX=/mingw -DCMAKE_BUILD_TYPE=Release . | ||
make | make | ||
make install | make install | ||
Line 349: | Line 352: | ||
make | make | ||
make install | make install | ||
=== GLEW === | |||
Unzip the GLEW archive in a folder, open MSYS, go to the GLEW folder and apply the following patch: | |||
<syntaxhighlight lang="diff"> | |||
--- config/Makefile.mingw.orig 2017-07-31 12:25:39 +0100 | |||
+++ config/Makefile.mingw 2020-12-10 20:23:36 +0000 | |||
@@ -5,8 +5,7 @@ | |||
LN := | |||
LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 | |||
LDFLAGS.EXTRA = -L/mingw/lib | |||
-CFLAGS.EXTRA += -fno-builtin -fno-stack-protector | |||
-LDFLAGS.EXTRA += -nostdlib | |||
+CFLAGS.EXTRA += -fno-builtin -fno-stack-protector -Wno-cast-function-type | |||
WARN = -Wall -W | |||
POPT = -O2 | |||
BIN.SUFFIX = .exe | |||
@@ -14,4 +13,4 @@ | |||
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib | |||
LIB.SHARED = $(NAME).dll | |||
LIB.STATIC = lib$(NAME).a # the static lib will be broken | |||
-LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) | |||
+LDFLAGS.SO = -nostdlib -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) | |||
</syntaxhighlight> | |||
Then issue these commands to compile and install the library: | |||
make install.all GLEW_PREFIX=$PREFIX GLEW_DEST=$PREFIX | |||
Line 360: | Line 394: | ||
strip scummvm.exe | strip scummvm.exe | ||
== Compiling with Console/Text Output == | |||
By default ScummVM is compiled as a Windows subsystem application with no console output. If you need the console, you will need to apply the following patch: | |||
<syntaxhighlight lang="diff"> | |||
diff --git a/configure b/configure | |||
index 838c759b75..04cfd361dd 100755 | |||
--- a/configure | |||
+++ b/configure | |||
@@ -6070,6 +6070,9 @@ case $_host_os in | |||
append_var CXXFLAGS "-fdata-sections" | |||
append_var LDFLAGS "-Wl,--gc-sections" | |||
;; | |||
+ mingw*) | |||
+ LIBS=`echo $LIBS | sed -e 's/-mconsole//g' -e 's/-mwindows//g'` | |||
+ ;; | |||
n64) | |||
# Move some libs down here, otherwise some symbols requires by libvorbis aren't found | |||
# during linking stage | |||
</syntaxhighlight> | |||
Save it to your root directory and apply it with <code>patch -p1 -i path-to-patch.diff</code>. | |||
== Ready to go! == | == Ready to go! == | ||
OK this should be all of it (thankfully), so you should be good to go. | OK this should be all of it (thankfully), so you should be good to go. |
edits