DEADSOFTWARE

add paths for osx
[d2df-sdl.git] / src / shared / a_modes.inc
index a0ea22057a20fde14b3d03f2a2de5dcf87937d7b..9b5d9390f1fadf14f156622520bde230fc91a334 100644 (file)
@@ -1,5 +1,4 @@
 // compiler options, common for all game modules
-{.$MODE DELPHI}
 {$MODE OBJFPC}
 
 {$MODESWITCH ADVANCEDRECORDS+}
 {$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-}
 
+{$IFDEF DARWIN}
+  {$MODESWITCH OBJECTIVEC1}
+{$ENDIF}
 
 {$ASSERTIONS ON}
 {$BITPACKING OFF}
 {$BOOLEVAL OFF}
 {$COPERATORS ON}
 {$EXTENDEDSYNTAX ON}
-{$FPUTYPE SSE}
+{$IFDEF CPU386}
+  {$FPUTYPE SSE}
+{$ENDIF}
 {$GOTO ON}
 {$IEEEERRORS OFF}
 {$INLINE ON}
@@ -45,7 +48,7 @@
 {$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 ON}
   {$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}
+  {$DEFINE USE_GLSTUB}
+  {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL)}
+    {$WARNING Render drivers not needed in headless mode. Force stub driver...}
+    {$UNDEF USE_GLES1}
+    {$UNDEF USE_OPENGL}
+  {$ENDIF}
+  {$IFDEF ENABLE_HOLMES}
+    {$WARNING Holmes in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_HOLMES}
+  {$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}
+  {$IFDEF USE_SDLMIXER}
+    {$ERROR SDL_mixer not supported with SDL 1.2.x}
+  {$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}
+  {$IFDEF IN_TOOLS}
+    {$DEFINE USE_SOUNDSTUB}
+  {$ELSE}
+    {$ERROR Sound driver not selected. Use -dUSE_SOUNDSTUB or -dUSE_SDLMIXER or -dUSE_FMOD or -dUSE_OPENAL}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(USE_GLSTUB)}
+  {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_GLES1)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_OPENGL)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_GLES1)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSE}
+  {$DEFINE USE_OPENGL}
+  {.$ERROR Render driver not selected. Use -dUSE_GLSTUB or -dUSE_GLES1 or -dUSE_OPENGL}
+{$ENDIF}
+
+{$IFDEF ENABLE_HOLMES}
+  {$IFNDEF USE_SDL2}
+    {$ERROR Holmes supported only with SDL2}
+  {$ENDIF}
+  {$IFNDEF USE_OPENGL}
+    {$ERROR Holmes supported only with desktop OpenGL}
+  {$ENDIF}
+{$ENDIF}