1#ifndef stdafx_h_
2#define stdafx_h_
3
4// stdafx.h : include file for standard system include files,
5// or project specific include files that are used frequently, but
6// are changed infrequently
7//
8
9// Default to external release.
10#ifndef SGTL_INTERNAL
11    #define SGTL_INTERNAL 0
12#endif
13
14#include <iostream>
15#include <stdexcept>
16
17#if defined(WIN32)
18//#include <tchar.h>
19
20    // define this macro for use in VC++
21    #if !defined(__LITTLE_ENDIAN__)
22        #define __LITTLE_ENDIAN__ 1
23    #endif // !defined(__LITTLE_ENDIAN__)
24#endif // defined(WIN32)
25
26#if defined(Linux)
27// For Linux systems only, types.h only defines the signed
28// integer types.  This is not professional code.
29// Update: They are defined in the header files in the more recent version of redhat enterprise gcc.
30#include <sys/types.h>
31#include <stdint.h>
32//typedef unsigned long uint32_t;
33//typedef unsigned short uint16_t;
34//typedef unsigned char uint8_t;
35
36//#define TCHAR char
37//#define _tmain main
38
39    // give a default endian in case one is not defined on Linux (it should be, though)
40    #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
41        #define __LITTLE_ENDIAN__ 1
42    #endif // !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
43
44#endif // defined(Linux)
45
46// gcc on Mac OS X
47#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
48	#include <TargetConditionals.h>
49
50	#if defined(TARGET_RT_LITTLE_ENDIAN) && TARGET_RT_LITTLE_ENDIAN
51		#if !defined(__LITTLE_ENDIAN__)
52			#define __LITTLE_ENDIAN__
53		#endif
54	#elif defined(TARGET_RT_BIG_ENDIAN) && TARGET_RT_BIG_ENDIAN
55		#if !defined(__BIG_ENDIAN__)
56			#define __BIG_ENDIAN__
57		#endif
58	#endif
59#endif
60
61#if defined(WIN32) //!defined(Linux) || !defined(__GNUC__)
62// redefine missing typedefs from stdint.h or syst/types.h
63
64typedef unsigned long long uint64_t;
65typedef unsigned long uint32_t;
66typedef unsigned short uint16_t;
67typedef unsigned char uint8_t;
68
69typedef long long int64_t;
70typedef long int32_t;
71typedef short int16_t;
72typedef char int8_t;
73#endif // !defined(Linux)
74
75#if !defined(TRUE)
76    #define TRUE 1
77#endif // !defined(TRUE)
78
79#if !defined(FALSE)
80    #define FALSE 0
81#endif // !defined(FALSE)
82
83#endif // stdafx_h_
84