1 /** 2 * This is the build config file. 3 * 4 * With this you can setup what to inlcude/exclude automatically during any build. Just comment 5 * out the line that enum's the word for the thing you want to remove. phew! 6 */ 7 module tomcrypt.cfg; 8 9 import core.stdc.config; 10 11 extern(C) nothrow: 12 13 /* type of argument checking, 0=default, 1=fatal and 2=error+continue, 3=nothing */ 14 enum ARGTYPE = 0; 15 16 17 /* Controls endianess and size of registers. Leave uncommented to get platform neutral [slower] code 18 * 19 * Note: in order to use the optimized macros your platform must support unaligned 32 and 64 bit read/writes. 20 * The x86 platforms allow this but some others [ARM for instance] do not. On those platforms you **MUST** 21 * use the portable [slower] macros. 22 */ 23 24 /* No asm is a quick way to disable anything "not portable" */ 25 version(LTC_NO_ASM) 26 { 27 version = LTC_NO_ROLC; 28 version = LTC_NO_BSWAP; 29 } 30 else 31 { 32 version(LittleEndian) 33 { 34 version = ENDIAN_LITTLE; 35 } 36 version(BitEndian) 37 { 38 version = ENDIAN_BIG; 39 } 40 41 /* detect x86-32 machines somewhat */ 42 version(x86) 43 { 44 version = ENDIAN_32BITWORD; 45 version(LTC_NO_FAST) {} 46 else 47 { 48 version = LTC_FAST; 49 alias LTC_FAST_TYPE = c_ulong; 50 } 51 } 52 53 /* detects MIPS R5900 processors (PS2) */ 54 version(MIPS64) 55 { 56 version = ENDIAN_64BITWORD; 57 } 58 version(MIPS32) 59 { 60 version = ENDIAN_32BITWORD; 61 } 62 63 /* detect amd64 */ 64 version(X86_64) 65 { 66 version = ENDIAN_64BITWORD; 67 version(LTC_NO_FAST) {} 68 else 69 { 70 version = LTC_FAST; 71 alias LTC_FAST_TYPE = c_ulong; 72 } 73 } 74 75 /* detect PPC32 */ 76 version(PPC) 77 { 78 version = ENDIAN_32BITWORD; 79 version(LTC_NO_FAST) {} 80 else 81 { 82 version = LTC_FAST; 83 alias LTC_FAST_TYPE = c_ulong; 84 } 85 } 86 87 /* detect sparc and sparc64 */ 88 version(SPARC) 89 { 90 version = ENDIAN_32BITWORD; 91 } 92 version(SPARC64) 93 { 94 version = ENDIAN_64BITWORD; 95 } 96 } 97 98 /* version = ENDIAN_LITTLE; */ 99 /* version = ENDIAN_BIG; */ 100 101 /* version = ENDIAN_32BITWORD; */ 102 /* version = ENDIAN_64BITWORD; */ 103 104 version(ENDIAN_BIG) 105 { 106 version(ENDIAN_32BITWORD) {} 107 else version(ENDIAN_64BITWORD) {} 108 else 109 { 110 pragma(msg, "You must specify a word size as well as endianess in tomcrypt_cfg.h"); 111 } 112 } 113 else version(ENDIAN_LITTLE) 114 { 115 version(ENDIAN_32BITWORD) {} 116 else version(ENDIAN_64BITWORD) {} 117 else 118 { 119 pragma(msg, "You must specify a word size as well as endianess in tomcrypt_cfg.h"); 120 } 121 } else 122 { 123 version = ENDIAN_NEUTRAL; 124 } 125 126 /* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt_cfg.h,v $ */ 127 /* $Revision: 1.19 $ */ 128 /* $Date: 2006/12/04 02:19:48 $ */