Orocos Real-Time Toolkit  2.6.0
rtt-config.h
00001 #ifndef RTT_CONFIG_H
00002 #define RTT_CONFIG_H
00003 
00004 #define RTT_VERSION       2.6.0
00005 #define RTT_VERSION_MAJOR 2
00006 #define RTT_VERSION_MINOR 6
00007 #define RTT_VERSION_PATCH 0
00008 
00009 /* #undef ORO_DISABLE_PORT_DATA_SCRIPTING */
00010 
00011 // if not defined, show an error
00012 #ifndef OROCOS_TARGET
00013 // OROCOS_TARGET is only used to include the file targets/OROCOS_TARGET
00014 #error "You _must_ define OROCOS_TARGET to an installed target (for example: -DOROCOS_TARGET=gnulinux )"
00015 #endif
00016 
00017 #include "os/targets/rtt-target.h"
00018 
00019 // Detect the CPU we are compiling for
00020 #if defined( __GNUC__ )
00021 #define OROBLD_GCC_VERSION (__GNUC__ * 10000 \
00022                              + __GNUC_MINOR__ * 100 \
00023                  + __GNUC_PATCHLEVEL__)
00024 #endif
00025 # if defined( __GNUC__ ) && defined( __i386__ )
00026 #  define OROBLD_OS_ARCH_i386
00027 # elif defined( __GNUC__ ) && defined( __x86_64__ )
00028 #  define OROBLD_OS_ARCH_x86_64
00029 # elif defined( __GNUC__ ) && (defined( __powerpc__ ) || defined( __PPC__ ) )
00030 #  define OROBLD_OS_ARCH_ppc
00031 # elif defined( __GNUC__ ) && (defined( __arm__ ) || defined( __ARM__ ) )
00032 #  define OROBLD_OS_ARCH_arm
00033 # elif defined( __GNUC__ ) && defined( __ia64__ )
00034 #  error "ia64 Is not yet supported, contact the orocos-dev mailinglist for further actions."
00035 #  define OROBLD_OS_ARCH_ia64
00036 # elif defined( __MINGW32__ ) && defined( __i386__ )
00037 #  define OROBLD_OS_ARCH_i386
00038 # elif defined( WIN32 )
00039 #  define OROBLD_OS_ARCH_i386
00040 # else
00041 #  error "Unknown Processor Architecture"
00042 #  define OROBLD_OS_ARCH_unknown
00043 # endif
00044 
00045 
00046 //
00047 // See: <http://gcc.gnu.org/wiki/Visibility>
00048 //
00049 #define RTT_GCC_HASVISIBILITY
00050 #if defined(__GNUG__) && defined(RTT_GCC_HASVISIBILITY) && (defined(__unix__) || defined(__APPLE__))
00051 
00052 # if defined(RTT_DLL_EXPORT)
00053    // Use RTT_API for normal function exporting
00054 #  define RTT_API    __attribute__((visibility("default")))
00055 
00056    // Use RTT_EXPORT for static template class member variables
00057    // They must always be 'globally' visible.
00058 #  define RTT_EXPORT __attribute__((visibility("default")))
00059 
00060    // Use RTT_HIDE to explicitly hide a symbol
00061 #  define RTT_HIDE   __attribute__((visibility("hidden")))
00062 
00063 # else
00064 #  define RTT_API
00065 #  define RTT_EXPORT __attribute__((visibility("default")))
00066 #  define RTT_HIDE   __attribute__((visibility("hidden")))
00067 # endif
00068 #else
00069    // Win32 and NOT GNU
00070 # if defined( WIN32 ) && !defined ( __MINGW32__ )
00071 #  if defined(RTT_DLL_EXPORT)
00072 #   define RTT_API    __declspec(dllexport)
00073 #   define RTT_EXPORT __declspec(dllexport)
00074 #   define RTT_HIDE   
00075 #  else
00076 #   define RTT_API   __declspec(dllimport)
00077 #   define RTT_EXPORT __declspec(dllexport)
00078 #   define RTT_HIDE 
00079 #  endif
00080 # else
00081 #  define RTT_API
00082 #  define RTT_EXPORT
00083 #  define RTT_HIDE
00084 # endif
00085 #endif
00086 
00087 #endif