From cf489a25b0a826f616bf958e3e6e172944016c02 Mon Sep 17 00:00:00 2001 From: smatz Date: Tue, 17 Jun 2008 19:38:00 +0000 Subject: (svn r13552) -Codechange: use TTD_ENDIAN comparations instead of tests if TTD_[BIG/LITTLE]_ENDIAN is defined --- src/endian_check.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/endian_check.cpp') diff --git a/src/endian_check.cpp b/src/endian_check.cpp index 27769aa54..e70c2adc8 100644 --- a/src/endian_check.cpp +++ b/src/endian_check.cpp @@ -12,6 +12,21 @@ #include #include +/** Supported endian types */ +enum Endian { + ENDIAN_LITTLE, ///< little endian + ENDIAN_BIG ///< big endian +}; + +/** + * Shortcut to printf("#define TTD_*_ENDIAN 0/1") + * @param endian endian type to define + */ +static inline void printf_endian(Endian endian) +{ + printf("#define TTD_ENDIAN %s\n", endian == ENDIAN_LITTLE ? "TTD_LITTLE_ENDIAN" : "TTD_BIG_ENDIAN"); +} + /** * Main call of the endian_check program * @param argc argument count @@ -30,23 +45,23 @@ int main (int argc, char *argv[]) printf("#ifndef ENDIAN_H\n#define ENDIAN_H\n"); if (force_LE == 1) { - printf("#define TTD_LITTLE_ENDIAN\n"); + printf_endian(ENDIAN_LITTLE); } else if (force_BE == 1) { - printf("#define TTD_BIG_ENDIAN\n"); + printf_endian(ENDIAN_BIG); } else if (force_PREPROCESSOR == 1) { /* 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_endian(ENDIAN_BIG); printf("#else\n"); - printf("#define TTD_LITTLE_ENDIAN\n"); + printf_endian(ENDIAN_LITTLE); printf("#endif\n"); } else if (*(short*)endian_test == 1 ) { - printf("#define TTD_LITTLE_ENDIAN\n"); + printf_endian(ENDIAN_LITTLE); } else { - printf("#define TTD_BIG_ENDIAN\n"); + printf_endian(ENDIAN_BIG); } printf("#endif\n"); -- cgit v1.2.3-70-g09d2