Index: code/branches/buildsystem3/src/SpecialConfig.h.in
===================================================================
--- code/branches/buildsystem3/src/OrxonoxConfig.h.in	(revision 2688)
+++ code/branches/buildsystem3/src/SpecialConfig.h.in	(revision 2702)
@@ -25,10 +25,4 @@
  *      ...
  *
- *   Original code: OgrePlatform.h, licensed under the LGPL. The code
- *   has changed almost completely though.
- *
- *   Caution: Do not configure this file CMake configuration (Debug, Release, etc.)
- *            dependent! XCode and Visual Studio have the same file for all.
- *
  */
 
@@ -36,148 +30,14 @@
  @file
  @brief
-    Various constants for compiler, architecture and platform.
+    Various constants and options that only affect very little code.
+ @note
+    This is merely to avoid recompiling everything when only a path changes.
 
     @GENERATED_FILE_COMMENT@
  */
 
-#ifndef _OrxonoxConfig_H__
-#define _OrxonoxConfig_H__
+#ifndef _SpecialConfig_H__
+#define _SpecialConfig_H__
 
-/*---------------------------------
- * Platform and compiler related options
- *-------------------------------*/
-#cmakedefine ORXONOX_PLATFORM_WINDOWS
-#cmakedefine ORXONOX_PLATFORM_LINUX
-#cmakedefine ORXONOX_PLATFORM_APPLE
-#cmakedefine ORXONOX_PLATFORM_UNIX /* Apple and Linux */
-
-/* Determine compiler and set ORXONOX_COMP_VER */
-#if defined( _MSC_VER )
-#  define ORXONOX_COMPILER_MSVC
-#  define ORXONOX_COMP_VER _MSC_VER
-
-#elif defined( __GNUC__ )
-#  define ORXONOX_COMPILER_GCC
-#  define ORXONOX_COMP_VER (((__GNUC__)*100) + \
-        (__GNUC_MINOR__*10) + \
-        __GNUC_PATCHLEVEL__)
-#  if defined(__MINGW32__)
-#    define ORXONOX_COMPILER_MINGW
-#  endif
-
-#elif defined( __BORLANDC__ )
-#  define ORXONOX_COMPILER_BORLAND
-#  define ORXONOX_COMP_VER __BCPLUSPLUS__
-
-#else
-#  pragma error "No known compiler. Abort!"
-
-#endif
-
-/* Endianness */
-#cmakedefine ORXONOX_BIG_ENDIAN
-#cmakedefine ORXONOX_LITTLE_ENDIAN
-
-/* Architecture */
-#cmakedefine ORXONOX_ARCH_32
-#cmakedefine ORXONOX_ARCH_64
-
-/* See if we can use __forceinline or if we need to use __inline instead */
-#cmakedefine HAVE_FORCEINLINE
-#ifdef HAVE_FORCEINLINE
-#  define FORCEINLINE __forceinline
-#else
-#  define FORCEINLINE __inline
-#endif
-
-/* Try to define function information */
-#ifndef __FUNCTIONNAME__
-#  ifdef ORXONOX_COMPILER_BORLAND
-#    define __FUNCTIONNAME__ __FUNC__
-#  elif defined(ORXONOX_COMPILER_GCC)
-#    define __FUNCTIONNAME__ __PRETTY_FUNCTION__
-#  elif defined(ORXONOX_COMPILER_MSVC)
-#    define __FUNCTIONNAME__ __FUNCTION__
-#  else
-#    define __FUNCTIONNAME__
-#  endif
-#endif
-
-
-/*---------------------------------
- * Version information
- *-------------------------------*/
-#define ORXONOX_VERSION_MAJOR @ORXONOX_VERSION_MAJOR@
-#define ORXONOX_VERSION_MINOR @ORXONOX_VERSION_MINOR@
-#define ORXONOX_VERSION_PATCH @ORXONOX_VERSION_PATCH@
-#define ORXONOX_VERSION_NAME "@ORXONOX_VERSION_NAME@"
-
-#define ORXONOX_VERSION ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
-
-
-/*---------------------------------
- * Unix settings
- *-------------------------------*/
-#ifdef ORXONOX_PLATFORM_UNIX
-
-/* TODO: Check what this actually is and whether we need it or not */
-#if 0
-#  ifdef ORXONOX_PLATFORM_APPLE
-#    define ORXONOX_PLATFORM_LIB "OrxonoxPlatform.bundle"
-#  else
-/* ORXONOX_PLATFORM_LINUX */
-#    define ORXONOX_PLATFORM_LIB "libOrxonoxPlatform.so"
-#  endif
-#endif
-
-#endif /* Patform Unix */
-
-
-/*---------------------------------
- * Apple Settings
- *-------------------------------*/
-
-
-/*---------------------------------
- * Includes
- *-------------------------------*/
-/* Define the english written operators like and, or, xor
- * This is C++ standard, but the Microsoft compiler doesn't define them. */
-#cmakedefine HAVE_ISO646_H
-#ifdef HAVE_ISO646_H
-#  include <iso646.h>
-#endif
-
-#cmakedefine HAVE_STDINT_H
-#ifdef HAVE_STDINT_H
-#  include <stdint.h>
-#elif defined(ORXONOX_COMPILER_MSVC)
-typedef __int8            int8_t;
-typedef __int16           int16_t;
-typedef __int32           int32_t;
-typedef __int64           int64_t;
-typedef unsigned __int8   uint8_t;
-typedef unsigned __int16  uint16_t;
-typedef unsigned __int32  uint32_t;
-typedef unsigned __int64  uint64_t;
-#endif
-
-#cmakedefine HAVE_STDDEF_H
-/* Quite large, do not include unless necessary
-#ifdef HAVE_STDDEF_H
-#  include <stddef.h>
-#endif
-*/
-
-/* Visual Leak Detector looks for memory leaks */
-#cmakedefine VISUAL_LEAK_DETECTOR_ENABLE
-#ifdef VISUAL_LEAK_DETECTOR_ENABLE
-#  include <vld.h>
-#endif
-
-
-/*---------------------------------
- * Various Settings
- *-------------------------------*/
 /* Set whether we must suffix "ceguilua/" for the CEGUILua.h include */
 #cmakedefine CEGUILUA_USE_INTERNAL_LIBRARY
@@ -186,4 +46,8 @@
    too when installing. */
 #cmakedefine DEPENDENCY_PACKAGE_ENABLE
+
+/* Orxonox either gets installed to the system or just into a folder.
+   The latter uses relative paths. */
+#cmakedefine INSTALL_COPYABLE
 
 /* Using MSVC or XCode IDE */
@@ -198,15 +62,17 @@
 namespace orxonox
 {
-    const char* const ORXONOX_MEDIA_INSTALL_PATH ("@ORXONOX_MEDIA_INSTALL_PATH_EXEC@/");
-    const char* const ORXONOX_CONFIG_INSTALL_PATH("@ORXONOX_CONFIG_INSTALL_PATH_EXEC@/");
-    const char* const ORXONOX_LOG_INSTALL_PATH   ("@ORXONOX_LOG_INSTALL_PATH_EXEC@/");
+    const char* const ORXONOX_RUNTIME_INSTALL_PATH("@ORXONOX_RUNTIME_INSTALL_PATH@");
+    const char* const ORXONOX_MEDIA_INSTALL_PATH  ("@ORXONOX_MEDIA_INSTALL_PATH@");
+    /* Config and Log path might be relative because they could be user and therefore runtime dependent */
+    const char* const ORXONOX_CONFIG_INSTALL_PATH ("@ORXONOX_CONFIG_INSTALL_PATH@");
+    const char* const ORXONOX_LOG_INSTALL_PATH    ("@ORXONOX_LOG_INSTALL_PATH@");
 
-    const char* const ORXONOX_MEDIA_DEV_PATH     ("@ORXONOX_MEDIA_DEV_PATH@/");
+    const char* const ORXONOX_MEDIA_DEV_PATH      ("@CMAKE_MEDIA_OUTPUT_DIRECTORY@");
 #ifdef CMAKE_CONFIGURATION_TYPES
-    const char* const ORXONOX_CONFIG_DEV_PATH    ("@ORXONOX_CONFIG_DEV_PATH@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE) "/");
-    const char* const ORXONOX_LOG_DEV_PATH       ("@ORXONOX_LOG_DEV_PATH@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE) "/");
+    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE));
+    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE));
 #else
-    const char* const ORXONOX_CONFIG_DEV_PATH    ("@ORXONOX_CONFIG_DEV_PATH@/");
-    const char* const ORXONOX_LOG_DEV_PATH       ("@ORXONOX_LOG_DEV_PATH@/");
+    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@");
+    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@");
 #endif
     
@@ -229,3 +95,3 @@
 }
 
-#endif /* _OrxonoxConfig_H__ */
+#endif /* _SpecialConfig_H__ */
