// System dependent definitions #ifndef _CL_SYSDEP_H #define _CL_SYSDEP_H // CPU and other #include "cln/config.h" // char_bitsize, short_bitsize, long_bitsize, long_long_bitsize #include "cln/intparam.h" // The CPU's endianness #if defined(short_little_endian) || defined(int_little_endian) || defined(long_little_endian) // Z80, VAX, I80X86, DECALPHA, MIPSEL, ...: // Low byte at low address, high byte at high address #if defined(CL_CPU_BIG_ENDIAN_P) #error "Bogus CL_CPU_BIG_ENDIAN_P!" #endif #define CL_CPU_BIG_ENDIAN_P 0 #endif #if defined(short_big_endian) || defined(int_big_endian) || defined(long_big_endian) // MC680X0, SPARC, HPPA, MIPSEB, M88000, RS6000, ...: // High byte at low address, low byte at high address #if defined(CL_CPU_BIG_ENDIAN_P) #error "Bogus CL_CPU_BIG_ENDIAN_P!" #endif #define CL_CPU_BIG_ENDIAN_P 1 #endif #if !defined(CL_CPU_BIG_ENDIAN_P) #error "Bogus CL_CPU_BIG_ENDIAN_P!" #endif // Auswahl der Floating-Point-Fähigkeiten: // FAST_DOUBLE sollte definiert werden, wenn ein Floating-Point-Coprozessor // vorhanden ist, dessen `double'-Typ IEEE-Floating-Points mit 64 Bits sind. // FAST_FLOAT sollte definiert werden, wenn ein Floating-Point-Coprozessor // vorhanden ist, dessen `float'-Typ IEEE-Floating-Points mit 32 Bits sind, // und der C++-Compiler auch `float'- und nicht `double'-Operationen generiert. #if defined(__sparc__) || defined(__sparc64__) || defined(__hppa__) || defined(__m88k__) || defined(__rs6000__) #define FAST_DOUBLE #define FAST_FLOAT #endif #if defined(__i386__) && (defined(linux) || defined(__linux__) || defined(NeXT)) // Linux hat einen funktionierenden Floating-Point-Coprozessor-Emulator. // NeXTstep läuft sowieso nur mit Floating-Point-Coprozessor. // Aber auf Intel-Pentium-Prozessoren ist die FPU fehlerhaft. #define FAST_DOUBLE #define FAST_FLOAT #endif #if defined(__arm__) // Bei Integers ist der Prozessor Little-Endian, bei Double-Floats Big-Endian! #undef FAST_DOUBLE #endif // Macros for internal use. #include "cl_macros.h" // Elementary types. #include "cln/types.h" // Dependencies among modules. #include "cln/modules.h" #endif /* _CL_SYSDEP_H */