X-Git-Url: https://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=README;h=58c544c0d72694378b2900fa4ce85c70d9309d5e;hp=7cedece869ad86196a84b09b7356cedbd0b9078d;hb=HEAD;hpb=3a2594735abd86e583b35da46526b9d16a9cd0ed diff --git a/README b/README index 7cedece..b776de8 100644 --- a/README +++ b/README @@ -1,51 +1,80 @@ D2DF-SDL --------- -Doom 2D Forever ( http://repo.or.cz/d2df-sdl.git ) adapted for use with the FreePascal Compiler -and ported to SDL 2.0. +Doom 2D Forever ( http://repo.or.cz/d2df-sdl.git ) adapted for use with the +FreePascal Compiler and ported to SDL 2.0. Building --------- Requirements: -* FPC >= 3.0.2; -* FMODEx >= 4.26.xx or SDL_mixer >= 2.0; +* FPC >= 3.0.4; * libenet >= 1.3.13; -* SDL >= 2.0. -Create the "tmp" and "bin" directories beforehand if they don't exist already. Then run - -cd src/game -fpc -O3 -Fi../lib/vampimg -Fi../lib/vampimg/JpegLib -Fi../lib/vampimg/ZLib -Fu../lib/vampimg -Fu../lib/vampimg/JpegLib -Fu../lib/vampimg/ZLib -FE../../bin -FU../../tmp Doom2DF.lpr - -If you want SDL_mixer instead of FMOD, add -dUSE_SDLMIXER. -If you want the server to be able to forward ports via UPNP, add -dUSE_MINIUPNPC. -If you want to debug game with Holmes, add -dENABLE_HOLMES. -To build a headless (no video/audio, for dedicated servers) executable, add -dHEADLESS. -Replace -O3 with -g -gl to enable debugging features. Run the game with --gdb when using a debugger to -prevent it from eating exceptions. - -Windows binaries will require the appropriate DLLs (SDL2.dll, SDL2_mixer.dll or FMODEx.dll, ENet.dll, miniupnpc.dll), -unless you choose to static link them (see below). +Create the "tmp" and "bin" directories and then run: + + cd src/game + fpc -g -gl -O3 -FE../../bin -FU../../tmp Doom2DF.lpr + +Additionally you can add following options: + System driver: + * -dUSE_SDL Build with SDL 1.2.x + * -dUSE_SDL2 Build with SDL 2.0.x + * -dUSE_SYSSTUB Disable I/O management + Render driver: + * -dUSE_OPENGL Build with desktop OpenGL 2.x + * -dUSE_GLES1 Build with mobile OpenGLES 1.1 + * -dUSE_GLSTUB Disable rendering + Sound driver: + * -dUSE_FMOD Build with FMODEx 4.26.x + * -dUSE_SDLMIXER Build with SDL_mixer + * -dUSE_OPENAL Build with OpenAL 1.1 + * -dUSE_SOUNDSTUB Disable sound management + Sound file drivers (OpenAL only): + * -dUSE_SDL Build with SDL 1.2.x for WAV support + * -dUSE_SDL2 Build with SDL 2.0.x for WAV support + * -dUSE_VORBIS Build with libvorbis + * -dUSE_FLUIDSYNTH Build with libfluidsynth + * -dUSE_MODPLUG Build with libmodplug + * -dUSE_XMP Build with linxmp + * -dUSE_MPG123 Build with libmpg123 + * -dUSE_OPUS Build with libopus + * -dUSE_GME Build with libgme + Other: + * -dSDL2_NODPI Build for old libSDL2 + * -dUSE_MINIUPNPC Build with libminiupnpc for automatic server port + forwarding via UPNP + * -dENABLE_HOLMES Build with ingame map debugger + * -dHEADLESS Build a headless executable for dedicated servers + +Run the game with --gdb when using a debugger to prevent it from eating +exceptions. + +Windows binaries will require the appropriate DLLs (SDL2.dll, SDL2_mixer.dll or +FMODEx.dll, ENet.dll, miniupnpc.dll), unless you choose to static link them. Static Linking -------------- -See ( http://repo.or.cz/d2df-binlib.git ) repo for prebuild dynamic and static libraries. +See ( http://repo.or.cz/d2df-binlib.git ) repo for prebuilt dynamic and static +libraries. It is now possible to link windoze LibJIT and ENet as static libs. -First, you need to clone ( http://repo.or.cz/d2df-binlib.git ) (repo with prebuilt windoze libs). +First, you need to clone ( http://repo.or.cz/d2df-binlib.git ). Then, you can use: -dLIBJIT_WINDOZE_STATIC -- static LibJIT -dLIBENET_WINDOZE_STATIC -- static ENet -dLIBMINIUPNPC_WINDOZE_STATIC -- static MiniUPNPC + -dVORBIS_WINDOZE_STATIC -- static libogg/libvorbis (only in AL builds) + -dOPUS_WINDOZE_STATIC -- static libogg/libopus (only in AL builds) Don't forget to specify lib*.a location with -Fi<...> -I (ketmar) used mingw-gcc 7.1.0 to build static libs; some other .a libs were taken directly from mingw. -building libs is easy: just fire msys, install all dependencies, and do: +I (ketmar) used mingw-gcc 7.1.0 to build static libs; some other .a libs were +taken directly from mingw. building libs is easy: just fire msys, install all +dependencies, and do: ./configure --enable-static --disable-shared && make