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//typedef unsigned long uint32_t;
32//typedef unsigned short uint16_t;
33//typedef unsigned char uint8_t;
34
35//#define TCHAR char
36//#define _tmain main
37
38    // give a default endian in case one is not defined on Linux (it should be, though)
39    #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
40        #define __LITTLE_ENDIAN__ 1
41    #endif // !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
42
43#endif // defined(Linux)
44
45
46#if !defined(Linux)
47// redefine missing typedefs from stdint.h or syst/types.h
48
49typedef unsigned long uint32_t;
50typedef unsigned short uint16_t;
51typedef unsigned char uint8_t;
52
53typedef long int32_t;
54typedef short int16_t;
55typedef char int8_t;
56#endif // !defined(Linux)
57
58#if !defined(TRUE)
59    #define TRUE 1
60#endif // !defined(TRUE)
61
62#if !defined(FALSE)
63    #define FALSE 0
64#endif // !defined(FALSE)
65
66#endif // stdafx_h_
67