Praeprozessor Makros, Konstante fuer Byte Order
-
Hallo Zusammen,
Ich suche den Praeprozessor Konstanten fuer den Byte Order auf sun sparc.
In Linux/Unix wird es ja mit __BYTE_ORDER(endian.h) festgelegt. Gibt's so
eine Konstante auch in sparc?Danke im voraus.
-
Wenn du Autoconf benutzt, dann kannst du die Funtkion
AC_C_BIGENDIAN
benutzen. Damit kannst du dir dann in der config.h ein entsprechendes Define setzen.
-
ProgChild schrieb:
Wenn du Autoconf benutzt, dann kannst du die Funtkion
AC_C_BIGENDIAN
benutzen. Damit kannst du dir dann in der config.h ein entsprechendes Define setzen.Danke fuer den Hinweis. Ich habe mir die Konstante durch:
AC_DEFINE([TEST_LENDIAN],[1234],[from lsb to msb]) AC_DEFINE([TEST_BENDIAN],[4321],[from msb to lsb]) AC_DEFINE([BYTE_ORDER],[],[Byte order for the machine]) AC_C_BIGENDIAN([AC_DEFINE([BYTE_ORDER], [TEST_BENDIAN],[])], [AC_DEFINE([BYTE_ORDER], [TEST_LENDIAN],[])], [])
definiert und wird zur Konfigurierungszeit entschieden in welcher BYTE_ORDER der
Prozessor arbeitet. Die Ausgabe in config.h moechte ich verbessern weil die
Definition von Konstanten wie *_LENDIAN und *_BENDIAN nach der Definition
von BYTE_ORDER erscheinen. Auszug von config.h:/* Byte order for the machine */ #define BYTE_ORDER TEST_LENDIAN /* from msb to lsb */ #define TEST_BENDIAN 4321 /* from lsb to msb */ #define TEST_LENDIAN 1234
Wie kann ich den autotools dazu zwingen so dass es TEST_LENDIAN und TEST_BENDIAN
bevor Definition der BYTE_ORDER erscheinen?Und ist es moeglich jede Definition durch autotools mit einem #ifndef DEFINITION
zu wrappen? Sowie unten:/* from msb to lsb */ #ifndef TEST_BENDIAN #define TEST_BENDIAN 4321 #endif /* from lsb to msb */ #ifndef TEST_LENDIAN #define TEST_LENDIAN 1234 #endif /* now that we have the LENDIAN und BENDIAN we can define BYTE_ORDER */ /* Byte order for the machine */ #ifndef BYTE_ORDER && defined(TEST_LENDIAN) #define BYTE_ORDER TEST_LENDIAN #endif
Danke im voraus,
-
die default funktion von AC_C_BIGENDIAN ist, das define WORDS_BIGENDIAN zu setzen. sollte das nicht reichen?