DEADSOFTWARE

use sdl2 as default driver
[d2df-sdl.git] / src / shared / a_modes.inc
index ee78b4f355d9501813a5975a4da1e0e1b8f32750..733abb82e82d58ff9d11777541efe0924870758b 100644 (file)
@@ -1,5 +1,4 @@
 // compiler options, common for all game modules
-{.$MODE DELPHI}
 {$MODE OBJFPC}
 
 {$MODESWITCH ADVANCEDRECORDS+}
@@ -24,8 +23,7 @@
 {$MODESWITCH PROPERTIES+}
 {$MODESWITCH REPEATFORWARD+} // Implementation and Forward declaration must match completely.
 {$MODESWITCH RESULT+}
-{$MODESWITCH TYPEHELPERS-} // Allow the use of type helpers.
-{$MODESWITCH UNICODESTRINGS-}
+{$MODESWITCH TYPEHELPERS+} // Allow the use of type helpers.
 {$MODESWITCH UNICODESTRINGS-}
 
 
@@ -34,7 +32,9 @@
 {$BOOLEVAL OFF}
 {$COPERATORS ON}
 {$EXTENDEDSYNTAX ON}
-{$FPUTYPE SSE}
+{$IFDEF CPU386}
+  {$FPUTYPE SSE}
+{$ENDIF}
 {$GOTO ON}
 {$IEEEERRORS OFF}
 {$INLINE ON}
 {$POINTERMATH ON}
 {$RANGECHECKS OFF}
 {$SAFEFPUEXCEPTIONS OFF}
-{$SCOPEDENUMS OFF} // this will possibly be changed later
+{$SCOPEDENUMS ON} // this may be changed later
 {$SMARTLINK ON}
 {$TYPEDADDRESS ON}
-{$TYPEINFO OFF}
+{$TYPEINFO ON}
 {$VARSTRINGCHECKS OFF}
 
 {$S-} // disable stack checking
   {$HINTS OFF}
 {$ELSE}
   {$STACKFRAMES OFF}
+  {$HINTS OFF}
+  {$DEFINE D2F_MORE_OPTIM}
 {$ENDIF}
 {$WARNINGS ON}
 {$NOTES ON}
 
+{$IF DEFINED(D2F_DEBUG_OPTIM) or DEFINED(D2F_MORE_OPTIM)}
+  {$OPTIMIZATION DEADVALUES}
+  {$OPTIMIZATION CONSTPROP}
+  {$OPTIMIZATION DEADSTORE}
+{$ENDIF}
+
+{$IFDEF WIN32}
+  {$IFNDEF MSWINDOWS}
+    {$DEFINE MSWINDOWS}
+  {$ENDIF}
+{$ENDIF}
 
 {$IFDEF MSWINDOWS}
   {$IFNDEF WINDOWS}
     {$DEFINE WINDOWS}
   {$ENDIF WINDOWS}
-{$ENDIF MSWINDOWS}
+{$ENDIF}
+
+(* --------- Build options check --------- *)
+
+{$IFDEF HEADLESS}
+  {$DEFINE USE_SYSSTUB}
+  {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
+    {$WARNING System drivers not supported in headless mode. Force stub driver...}
+    {$UNDEF USE_SDL}
+    {$UNDEF USE_SDL2}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(USE_SYSSTUB)}
+  {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDL)}
+  {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL2)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDL2)}
+  {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSE}
+  {$DEFINE USE_SDL2}
+  {.$ERROR System driver not selected. Use -dUSE_SYSSTUB or -dUSE_SDL or -dUSE_SDL2}
+{$ENDIF}
+
+{$IF DEFINED(USE_SOUNDSTUB)}
+  {$IF DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDLMIXER)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_FMOD)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_OPENAL)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSE}
+  {$ERROR Sound driver not selected. Use -dUSE_SOUNDSTUB or -dUSE_SDLMIXER or -dUSE_FMOD or -dUSE_OPENAL}
+{$ENDIF}
+
+{$IFDEF ENABLE_HOLMES}
+  {$IFDEF HEADLESS}
+    {$ERROR Holmes in HEADLESS mode has no sense}
+  {$ENDIF}
+  {$IFNDEF USE_SDL2}
+    {$ERROR Holmes supported only with SDL2}
+  {$ENDIF}
+  {$IFDEF USE_GLES1}
+    {$ERROR Holmes not supported with GLES}
+  {$ENDIF}
+{$ENDIF}