1169691Skan#ifndef stdafx_h_ 2169691Skan#define stdafx_h_ 3169691Skan 4169691Skan// stdafx.h : include file for standard system include files, 5169691Skan// or project specific include files that are used frequently, but 6169691Skan// are changed infrequently 7169691Skan// 8169691Skan 9169691Skan// Default to external release. 10169691Skan#ifndef SGTL_INTERNAL 11169691Skan #define SGTL_INTERNAL 0 12169691Skan#endif 13169691Skan 14169691Skan#include <iostream> 15169691Skan#include <stdexcept> 16169691Skan 17169691Skan#if defined(WIN32) 18169691Skan//#include <tchar.h> 19169691Skan 20169691Skan // define this macro for use in VC++ 21169691Skan #if !defined(__LITTLE_ENDIAN__) 22169691Skan #define __LITTLE_ENDIAN__ 1 23169691Skan #endif // !defined(__LITTLE_ENDIAN__) 24169691Skan#endif // defined(WIN32) 25169691Skan 26169691Skan#if defined(Linux) 27169691Skan// For Linux systems only, types.h only defines the signed 28169691Skan// integer types. This is not professional code. 29169691Skan// Update: They are defined in the header files in the more recent version of redhat enterprise gcc. 30169691Skan#include <sys/types.h> 31169691Skan#include <stdint.h> 32169691Skan//typedef unsigned long uint32_t; 33169691Skan//typedef unsigned short uint16_t; 34169691Skan//typedef unsigned char uint8_t; 35169691Skan 36169691Skan//#define TCHAR char 37169691Skan//#define _tmain main 38169691Skan 39169691Skan // give a default endian in case one is not defined on Linux (it should be, though) 40169691Skan #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) 41169691Skan #define __LITTLE_ENDIAN__ 1 42169691Skan #endif // !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) 43169691Skan 44169691Skan#endif // defined(Linux) 45169691Skan 46169691Skan// gcc on Mac OS X 47169691Skan#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) ) 48169691Skan #include <TargetConditionals.h> 49169691Skan 50169691Skan #if defined(TARGET_RT_LITTLE_ENDIAN) && TARGET_RT_LITTLE_ENDIAN 51169691Skan #if !defined(__LITTLE_ENDIAN__) 52169691Skan #define __LITTLE_ENDIAN__ 53169691Skan #endif 54169691Skan #elif defined(TARGET_RT_BIG_ENDIAN) && TARGET_RT_BIG_ENDIAN 55169691Skan #if !defined(__BIG_ENDIAN__) 56169691Skan #define __BIG_ENDIAN__ 57169691Skan #endif 58169691Skan #endif 59169691Skan#endif 60169691Skan 61169691Skan#if defined(WIN32) //!defined(Linux) || !defined(__GNUC__) 62169691Skan// redefine missing typedefs from stdint.h or syst/types.h 63169691Skan 64169691Skantypedef unsigned long long uint64_t; 65169691Skantypedef unsigned long uint32_t; 66169691Skantypedef unsigned short uint16_t; 67169691Skantypedef unsigned char uint8_t; 68169691Skan 69169691Skantypedef long long int64_t; 70169691Skantypedef long int32_t; 71169691Skantypedef short int16_t; 72169691Skantypedef char int8_t; 73169691Skan#endif // !defined(Linux) 74169691Skan 75169691Skan#if !defined(TRUE) 76169691Skan #define TRUE 1 77169691Skan#endif // !defined(TRUE) 78169691Skan 79169691Skan#if !defined(FALSE) 80169691Skan #define FALSE 0 81169691Skan#endif // !defined(FALSE) 82169691Skan 83169691Skan#endif // stdafx_h_ 84169691Skan