Use 'ao-dbg' instead of 's51' to communicate with TeleMetrum
[fw/sdcc] / sdccconf_in.h
index 4c6511561bbdf7b49704bcc7e06cbcd900dfd6b5..cd08da4a9ce3afb0e5ee28ad79705a445f6736cf 100644 (file)
 #undef TYPE_UWORD
 #undef TYPE_UDWORD
 
-#undef WORDS_BIGENDIAN
+/*
+ * find out the endianess of host machine
+ * in order to be able to make Mac OS X unified binaries
+ */
+/* This is tricky since these might be defined with a blank replacement list */
+/* such as on SPARC Solaris. However, configure gets it right, so it's ok */
+/* that (_BIG_ENDIAN+0) is false, even though it is defined. */
+#if (__BIG_ENDIAN__+0) || (_BIG_ENDIAN+0)
+/* 1) trust the compiler */
+# define WORDS_BIGENDIAN 1
+#elif __LITTLE_ENDIAN__
+/* do nothing */
+#elif (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN)
+/* 2) trust the header files */
+# if BYTE_ORDER == BIG_ENDIAN 
+#   define WORDS_BIGENDIAN 1
+# endif
+#else 
+/* 3) trust the configure; this actually doesn't work for unified Mac OS X binaries :-( */
+# undef BUILD_WORDS_BIGENDIAN
+# if (defined BUILD_WORDS_BIGENDIAN && BUILD_WORDS_BIGENDIAN)
+#   define WORDS_BIGENDIAN  1
+# endif
+/* 4) assume that host is a little endian machine */
+#endif
 
 #undef OPT_DISABLE_MCS51
 #undef OPT_DISABLE_GBZ80