mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 01:11:44 +00:00
fd3712ab22
git-svn-id: https://svn.eduke32.com/eduke32@4319 1a8010ca-5511-0410-912e-c29ae57300e0
129 lines
5.3 KiB
Text
129 lines
5.3 KiB
Text
Instructions for Building EDuke32's Library Dependencies Targeting Win32 and Win64
|
|
|
|
First, follow these instructions:
|
|
http://wiki.eduke32.com/wiki/Building_EDuke32_on_Windows
|
|
|
|
Download the latest sources from:
|
|
https://www.xiph.org/downloads/
|
|
http://git.xiph.org/?p=flac.git;a=summary
|
|
http://zlib.net/
|
|
http://www.libpng.org/pub/png/libpng.html
|
|
http://www.webmproject.org/code/
|
|
http://www.libsdl.org/download-2.0.php
|
|
http://www.libsdl.org/projects/SDL_mixer/
|
|
|
|
The build output listed as "Desired Results" is what EDuke32 needs to function.
|
|
|
|
The desired results for each library in some cases may need to be installed to the compiler. "x depends on the results of y to compile" means that the build output of x must be added to the compiler in this way. Copy files listed in each category to the appropriate destinations. Unless otherwise noted, do NOT copy the ".dll.a" file or else the final product may depend on external DLLs (which you may actually want).
|
|
|
|
For MinGW (MinGW32):
|
|
from the compiler root (ex. C:\MinGW\)
|
|
headers: include\
|
|
libraries: lib\
|
|
|
|
For MinGW-w64:
|
|
from the compiler root (ex. C:\MinGW-w64\mingw32-dw2\)
|
|
headers: <target>-w64-mingw32\include\
|
|
libraries: <target>-w64-mingw32\lib\
|
|
|
|
Binaries need to be present with the finished EDuke32 executables. They are not needed during compilation.
|
|
|
|
NB: Text in [] are commands to be pasted into the Windows command prompt, sans [].
|
|
http://wiki.eduke32.com/wiki/Working_with_the_Windows_Command_Prompt
|
|
|
|
|
|
|
|
libogg:
|
|
To build:
|
|
[sh ./configure CFLAGS="-g -O2 -fno-stack-check -fno-stack-protector -mno-stack-arg-probe" && make]
|
|
Desired Results:
|
|
- headers: ogg\config_types.h ogg\ogg.h ogg\os_types.h
|
|
- libraries: libogg.a
|
|
|
|
libvorbis:
|
|
To build:
|
|
[sh ./configure CFLAGS="-fno-stack-check -fno-stack-protector -mno-stack-arg-probe" && make]
|
|
Desired Results:
|
|
- headers: vorbis\codec.h vorbis\vorbisfile.h
|
|
- libraries: libvorbis.a libvorbisfile.a
|
|
libvorbis depends on the results of libogg to compile.
|
|
|
|
libFLAC:
|
|
To build:
|
|
[make -f Makefile.lite libFLAC USE_LROUND=0 USE_FSEEKO=0 CUSTOM_CFLAGS="-fno-stack-check -fno-stack-protector -mno-stack-arg-probe"]
|
|
Desired Results:
|
|
- headers: FLAC\all.h FLAC\assert.h FLAC\callback.h FLAC\export.h FLAC\format.h FLAC\metadata.h FLAC\ordinals.h FLAC\stream_decoder.h FLAC\stream_encoder.h
|
|
- libraries: libFLAC.a
|
|
libFLAC depends on the results of libogg to compile.
|
|
|
|
|
|
zlib:
|
|
Modify win32\Makefile.gcc as follows:
|
|
- CFLAGS: change -O3 to -O2 for stability and possibly performance benefits.
|
|
- CFLAGS: add: -fno-stack-check -fno-stack-protector -mno-stack-arg-probe
|
|
To build:
|
|
[make -f win32\Makefile.gcc]
|
|
[ar rcs libz_mini.a crc32.o deflate.o adler32.o zutil.o trees.o]
|
|
Desired Results:
|
|
- headers: (none)
|
|
- libraries: libz_mini.a
|
|
|
|
|
|
libpng:
|
|
Copy *.h from zlib to your compiler's include directory.
|
|
Modify scripts\Makefile.gcc as follows:
|
|
- Ensure ZLIBINC and ZLIBLIB point to the directory of zlib from above, or, rename your zlib directory so that, relative to the libpng directory, it is "../zlib". You will get a compile-time error if this is omitted or done incorrectly.
|
|
- CFLAGS: add: -fno-stack-check -fno-stack-protector -mno-stack-arg-probe
|
|
Copy the file "minipng.dfa" to the root of the libpng data.
|
|
To build:
|
|
[make -f scripts/pnglibconf.mak DFA_XTRA=./minipng.dfa CPP="gcc -E"]
|
|
[make -f scripts/makefile.gcc libpng.a]
|
|
[ren libpng.a libpng_mini.a]
|
|
Desired Results:
|
|
- headers: png.h pngconf.h pnglibconf.h
|
|
- libraries: libpng_mini.a
|
|
|
|
|
|
libvpx:
|
|
Download the binary of yasm (http://yasm.tortall.net/) for your host system architecture. Both builds target both architectures.
|
|
The build environment needs pr.exe (https://mingw-lib.googlecode.com/files/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2).
|
|
If the configure scripts do not recognize your 64-bit compiler, you may need to [git apply "libvpx with MinGW-w64.patch"].
|
|
To build:
|
|
[sh ./configure --disable-vp8-encoder --disable-vp9-encoder --disable-multithread --disable-spatial-resampling --as=yasm --extra-cflags="-fno-stack-check -fno-stack-protector -mno-stack-arg-probe" && make]
|
|
Desired Results:
|
|
- headers: vpx\vp8.h vpx\vp8dx.h vpx\vpx_codec.h vpx\vpx_codec_impl_bottom.h vpx\vpx_codec_impl_top.h vpx\vpx_decoder.h vpx\vpx_decoder_compat.h vpx\vpx_image.h vpx\vpx_integer.h
|
|
- libraries: libvpx.a libvpx_g.a
|
|
|
|
|
|
SDL:
|
|
To build:
|
|
[sh ./configure && make]
|
|
Desired Results:
|
|
- headers: SDL_*.h
|
|
- libraries: libSDL.a libSDL.dll.a libSDLmain.a
|
|
- binaries: SDL.dll
|
|
|
|
SDL_mixer:
|
|
Download SDL_mixer-devel-<version>-VC.zip.
|
|
The library used for linking can be found at these paths:
|
|
32-bit: SDL_mixer-<version>/lib/x86/SDL_mixer.lib
|
|
64-bit: SDL_mixer-<version>/lib/x64/SDL_mixer.lib
|
|
Compiling SDL_mixer 1.x has not been shown to work with either MinGW. If you would like to try anyway:
|
|
To build:
|
|
[sh ./configure && make]
|
|
SDL_mixer depends on the results of SDL to compile. Note that the headers must be installed without the "SDL" prefix directory.
|
|
Note: With just this bare bones setup all the external libraries and formats will be disabled, but that's OK.
|
|
Desired Results:
|
|
- headers: SDL_mixer.h
|
|
- libraries: SDL_mixer.lib
|
|
- binaries: SDL_mixer.dll
|
|
|
|
|
|
dsound:
|
|
dxguid:
|
|
See Windows\src\dxlibs.
|
|
To build:
|
|
[make]
|
|
Desired Results:
|
|
- headers: ddraw.h dinput.h dsound.h (pre-positioned in Windows\include)
|
|
- libraries: libdsound.a libdxguid.a
|