diff options
author | truelight <truelight@openttd.org> | 2004-09-04 14:20:12 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2004-09-04 14:20:12 +0000 |
commit | 0fe07eac63a5c76f58ba7e25c1fba3fc762c4313 (patch) | |
tree | 6e2b691afebf8d8b014d667e8214654134147c6f /endian_check.c | |
parent | 85628544eeac566a70bf3f218bc078c096c65c50 (diff) | |
download | openttd-0fe07eac63a5c76f58ba7e25c1fba3fc762c4313.tar.xz |
(svn r158) -Fix: make endianess check 100% accurate (hopefully ;))
Diffstat (limited to 'endian_check.c')
-rw-r--r-- | endian_check.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/endian_check.c b/endian_check.c new file mode 100644 index 000000000..14d96fe91 --- /dev/null +++ b/endian_check.c @@ -0,0 +1,22 @@ +#include <stdio.h> + +// This pretty simple file checks if the system is LITTLE_ENDIAN or BIG_ENDIAN +// it does that by putting a 1 and a 0 in an array, and read it out as one +// number. If it is 1, it is LITTLE_ENDIAN, if it is 256, it is BIG_ENDINA +// +// After that it outputs the contents of an include files (endian.h) +// that says or TTD_LITTLE_ENDIAN, or TTD_BIG_ENDIAN. Makefile takes +// care of the real writing to the file. + +int main () { + unsigned char EndianTest[2] = { 1, 0 }; + printf("#ifndef ENDIAN_H\n#define ENDIAN_H\n"); + if( *(short *) EndianTest == 1 ) + printf("#define TTD_LITTLE_ENDIAN\n"); + else + printf("#define TTD_BIG_ENDIAN\n"); + + printf("#endif\n"); + + return 0; +} |