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. Building --------- Requirements: * FPC >= 3.0.4; * libenet >= 1.3.13; 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 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 ). 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: ./configure --enable-static --disable-shared && make This should produce working .a library suitable for static linking.