Files
@ r4381:c965d1f3016a
Branch filter:
Location: cpp/openttd-patchpack/source/endian_check.c - annotation
r4381:c965d1f3016a
1.6 KiB
text/x-c
(svn r6131) -Codechange : Complete all missing _ttdpatch_flags entries
-Feature : both unifiedmaglevmode are now set.
Maglev and monorail are not allowed to run on each other tracks and will not be.
Setting those flags will allow grfsets as the Norvegian one to be loaded
-Codechange : link the TTDPatch's irregularstations with OTTD's nonuniform_stations
-Codechange : Reformat the whole array (thanks Rubidium, it sure looks better now)
-Feature : both unifiedmaglevmode are now set.
Maglev and monorail are not allowed to run on each other tracks and will not be.
Setting those flags will allow grfsets as the Norvegian one to be loaded
-Codechange : link the TTDPatch's irregularstations with OTTD's nonuniform_stations
-Codechange : Reformat the whole array (thanks Rubidium, it sure looks better now)
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r157:a0ba33830082 r157:a0ba33830082 r157:a0ba33830082 r157:a0ba33830082 r200:f379a875a5a7 r157:a0ba33830082 r157:a0ba33830082 r157:a0ba33830082 r157:a0ba33830082 r157:a0ba33830082 r1692:55fc5c138610 r2713:674640c7ae09 r2719:d2987c332ad1 r1692:55fc5c138610 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2719:d2987c332ad1 r2719:d2987c332ad1 r1692:55fc5c138610 r2713:674640c7ae09 r1692:55fc5c138610 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2713:674640c7ae09 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2719:d2987c332ad1 r2713:674640c7ae09 r2713:674640c7ae09 r2713:674640c7ae09 r157:a0ba33830082 r2713:674640c7ae09 r157:a0ba33830082 | /* $Id$ */
#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_ENDIAN
//
// 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 (int argc, char *argv[]) {
unsigned char EndianTest[2] = { 1, 0 };
int force_BE = 0, force_LE = 0, force_PREPROCESSOR = 0;
if (argc > 1 && strcmp(argv[1], "BE") == 0)
force_BE = 1;
if (argc > 1 && strcmp(argv[1], "LE") == 0)
force_LE = 1;
if (argc > 1 && strcmp(argv[1], "PREPROCESSOR") == 0)
force_PREPROCESSOR = 1;
printf("#ifndef ENDIAN_H\n#define ENDIAN_H\n");
if (force_LE == 1) {
printf("#define TTD_LITTLE_ENDIAN\n");
} else {
if (force_BE == 1) {
printf("#define TTD_BIG_ENDIAN\n");
} else {
if (force_PREPROCESSOR == 1) {
// adding support for universal binaries on OSX
// Universal binaries supports both PPC and x86
// If a compiler for OSX gets this setting, it will always pick the correct endian and no test is needed
printf("#ifdef __BIG_ENDIAN__\n");
printf("#define TTD_BIG_ENDIAN\n");
printf("#else\n");
printf("#define TTD_LITTLE_ENDIAN\n");
printf("#endif\n");
} else {
if ( *(short *) EndianTest == 1 )
printf("#define TTD_LITTLE_ENDIAN\n");
else
printf("#define TTD_BIG_ENDIAN\n");
}
}
}
printf("#endif\n");
return 0;
}
|