Create the "tmp" and "bin" directories and then run:
cd src/game
- fpc -O3 -FE../../bin -FU../../tmp Doom2DF.lpr
+ fpc -g -gl -O3 -FE../../bin -FU../../tmp Doom2DF.lpr
Additionally you can add following options:
System driver:
* -dUSE_MPG123 Build with libmpg123
* -dUSE_OPUS Build with libopus
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
-Replace -O3 with -g -gl to enable debugging features. Run the game with --gdb
-when using a debugger to prevent it from eating exceptions.
+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.
flags := SDL_INIT_TIMER or $00004000;
{$ENDIF}
{$ELSE}
- flags := SDL_INIT_JOYSTICK or SDL_INIT_TIMER or SDL_INIT_VIDEO;
+ flags := SDL_INIT_TIMER or SDL_INIT_VIDEO;
{$ENDIF}
SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, '0');
if SDL_Init(flags) <> 0 then
raise Exception.Create('SDL: Init failed: ' + SDL_GetError);
+ {$IFNDEF HEADLESS}
+ if SDL_InitSubSystem(SDL_INIT_JOYSTICK) <> 0 then
+ e_LogWritefln('SDL: Init subsystem failed: %s', [SDL_GetError()]);
+ {$ENDIF}
SDL_ShowCursor(SDL_DISABLE);
end;
begin
founded := false;
- if SDL_GetDisplayDPI(0, @dpi, nil, nil) <> 0 then
+ {$IFNDEF SDL2_NODPI}
+ if SDL_GetDisplayDPI(0, @dpi, nil, nil) <> 0 then
+ dpi := 96;
+ {$ELSE}
dpi := 96;
+ {$ENDIF}
sz := Trunc(g_touch_size * dpi); sw := gScreenWidth; sh := gScreenHeight;
x := 0; y := Round(sh * g_touch_offset / 100);
{$ENDIF}
{$IF DEFINED(UNIX)}
- {$IF NOT DEFINED(HAIKU) AND NOT DEFINED(ANDROID)}
+ {$IF NOT DEFINED(HAIKU) AND NOT DEFINED(ANDROID) AND NOT DEFINED(DARWIN)}
uses
X,
XLib;
{$ENDIF}
{$IF DEFINED (LINUX) OR DEFINED(UNIX)}
- {$IF NOT DEFINED(HAIKU) AND NOT DEFINED(ANDROID)}
+ {$IF NOT DEFINED(HAIKU) AND NOT DEFINED(ANDROID) AND NOT DEFINED(DARWIN)}
{$DEFINE SDL_VIDEO_DRIVER_X11}
{$ENDIF}
{$IFEND}