Rev 7983 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7983 | Rev 8097 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | Linux32* = 9; |
22 | Linux32* = 9; |
23 | Linux32SO* = 10; |
23 | Linux32SO* = 10; |
24 | Linux64* = 11; |
24 | Linux64* = 11; |
25 | Linux64SO* = 12; |
25 | Linux64SO* = 12; |
26 | STM32CM3* = 13; |
26 | STM32CM3* = 13; |
- | 27 | RVM32I* = 14; |
|
Line 27... | Line 28... | ||
27 | 28 | ||
- | 29 | cpuX86* = 0; cpuAMD64* = 1; cpuMSP430* = 2; cpuTHUMB* = 3; |
|
Line 28... | Line 30... | ||
28 | cpuX86* = 0; cpuAMD64* = 1; cpuMSP430* = 2; cpuTHUMB* = 3; |
30 | cpuRVM32I* = 4; |
29 | 31 | ||
Line -... | Line 32... | ||
- | 32 | osNONE* = 0; osWIN32* = 1; osWIN64* = 2; |
|
- | 33 | osLINUX32* = 3; osLINUX64* = 4; osKOS* = 5; |
|
- | 34 | ||
- | 35 | noDISPOSE = {MSP430, STM32CM3, RVM32I}; |
|
Line 30... | Line 36... | ||
30 | osNONE* = 0; osWIN32* = 1; osWIN64* = 2; |
36 | |
Line 31... | Line 37... | ||
31 | osLINUX32* = 3; osLINUX64* = 4; osKOS* = 5; |
37 | noRTL = {MSP430}; |
Line 32... | Line 38... | ||
32 | 38 | ||
Line 33... | Line 39... | ||
33 | 39 | ||
34 | TYPE |
40 | TYPE |
Line 35... | Line 41... | ||
35 | 41 | ||
Line 36... | Line 42... | ||
36 | STRING = ARRAY 32 OF CHAR; |
42 | STRING = ARRAY 32 OF CHAR; |
Line 37... | Line 43... | ||
37 | 43 | ||
- | 44 | TARGET = RECORD |
|
- | 45 | ||
- | 46 | target, CPU, OS, RealSize: INTEGER; |
|
- | 47 | ComLinePar*, LibDir, FileExt: STRING |
|
- | 48 | ||
- | 49 | END; |
|
Line 38... | Line 50... | ||
38 | TARGET = RECORD |
50 | |
39 | 51 | ||
40 | target, CPU, BitDepth, OS, RealSize: INTEGER; |
52 | VAR |
Line 41... | Line 53... | ||
41 | ComLinePar*, LibDir, FileExt: STRING |
53 | |
42 | 54 | Targets*: ARRAY 15 OF TARGET; |
|
43 | END; |
55 | |
44 | 56 | CPUs: ARRAY 5 OF |
|
45 | - | ||
46 | VAR |
57 | RECORD |
47 | 58 | BitDepth, InstrSize: INTEGER; |
|
48 | Targets*: ARRAY 14 OF TARGET; |
59 | LittleEndian: BOOLEAN |
49 | 60 | END; |
|
50 | target*, CPU*, BitDepth*, OS*, RealSize*, WordSize*, AdrSize*: INTEGER; |
61 | |
Line 78... | Line 89... | ||
78 | 89 | ||
79 | res := i < LEN(Targets); |
90 | res := i < LEN(Targets); |
80 | IF res THEN |
91 | IF res THEN |
81 | target := Targets[i].target; |
92 | target := Targets[i].target; |
82 | CPU := Targets[i].CPU; |
93 | CPU := Targets[i].CPU; |
- | 94 | BitDepth := CPUs[CPU].BitDepth; |
|
- | 95 | InstrSize := CPUs[CPU].InstrSize; |
|
83 | BitDepth := Targets[i].BitDepth; |
96 | LittleEndian := CPUs[CPU].LittleEndian; |
84 | RealSize := Targets[i].RealSize; |
97 | RealSize := Targets[i].RealSize; |
85 | OS := Targets[i].OS; |
98 | OS := Targets[i].OS; |
86 | ComLinePar := Targets[i].ComLinePar; |
99 | ComLinePar := Targets[i].ComLinePar; |
87 | LibDir := Targets[i].LibDir; |
100 | LibDir := Targets[i].LibDir; |
Line 88... | Line 101... | ||
88 | FileExt := Targets[i].FileExt; |
101 | FileExt := Targets[i].FileExt; |
89 | 102 | ||
- | 103 | Import := OS IN {osWIN32, osWIN64, osKOS}; |
|
90 | Import := OS IN {osWIN32, osWIN64, osKOS}; |
104 | Dispose := ~(target IN noDISPOSE); |
91 | Dispose := ~(target IN {MSP430, STM32CM3}); |
105 | RTL := ~(target IN noRTL); |
92 | Dll := target IN {Linux32SO, Linux64SO, Win32DLL, Win64DLL, KolibriOSDLL}; |
106 | Dll := target IN {Linux32SO, Linux64SO, Win32DLL, Win64DLL, KolibriOSDLL}; |
93 | WordSize := BitDepth DIV 8; |
107 | WordSize := BitDepth DIV 8; |
Line 94... | Line 108... | ||
94 | AdrSize := WordSize |
108 | AdrSize := WordSize |
95 | END |
109 | END |
Line -... | Line 110... | ||
- | 110 | ||
- | 111 | RETURN res |
|
- | 112 | END Select; |
|
- | 113 | ||
- | 114 | ||
- | 115 | PROCEDURE EnterCPU (cpu, BitDepth, InstrSize: INTEGER; LittleEndian: BOOLEAN); |
|
- | 116 | BEGIN |
|
- | 117 | CPUs[cpu].BitDepth := BitDepth; |
|
96 | 118 | CPUs[cpu].InstrSize := InstrSize; |
|
- | 119 | CPUs[cpu].LittleEndian := LittleEndian |
|
- | 120 | END EnterCPU; |
|
- | 121 | ||
- | 122 | ||
- | 123 | BEGIN |
|
- | 124 | EnterCPU(cpuX86, 32, 1, TRUE); |
|
97 | RETURN res |
125 | EnterCPU(cpuAMD64, 64, 1, TRUE); |
98 | END Select; |
126 | EnterCPU(cpuMSP430, 16, 2, TRUE); |
99 | 127 | EnterCPU(cpuTHUMB, 32, 2, TRUE); |
|
100 | 128 | EnterCPU(cpuRVM32I, 32, 4, TRUE); |
|
101 | BEGIN |
129 | |
102 | Enter( MSP430, cpuMSP430, 16, 0, osNONE, "msp430", "MSP430", ".hex"); |
130 | Enter( MSP430, cpuMSP430, 0, osNONE, "msp430", "MSP430", ".hex"); |
103 | Enter( Win32C, cpuX86, 32, 8, osWIN32, "win32con", "Windows32", ".exe"); |
131 | Enter( Win32C, cpuX86, 8, osWIN32, "win32con", "Windows32", ".exe"); |
104 | Enter( Win32GUI, cpuX86, 32, 8, osWIN32, "win32gui", "Windows32", ".exe"); |
132 | Enter( Win32GUI, cpuX86, 8, osWIN32, "win32gui", "Windows32", ".exe"); |
105 | Enter( Win32DLL, cpuX86, 32, 8, osWIN32, "win32dll", "Windows32", ".dll"); |
133 | Enter( Win32DLL, cpuX86, 8, osWIN32, "win32dll", "Windows32", ".dll"); |
106 | Enter( KolibriOS, cpuX86, 32, 8, osKOS, "kosexe", "KolibriOS", ""); |
134 | Enter( KolibriOS, cpuX86, 8, osKOS, "kosexe", "KolibriOS", ""); |
107 | Enter( KolibriOSDLL, cpuX86, 32, 8, osKOS, "kosdll", "KolibriOS", ".obj"); |
135 | Enter( KolibriOSDLL, cpuX86, 8, osKOS, "kosdll", "KolibriOS", ".obj"); |
108 | Enter( Win64C, cpuAMD64, 64, 8, osWIN64, "win64con", "Windows64", ".exe"); |
136 | Enter( Win64C, cpuAMD64, 8, osWIN64, "win64con", "Windows64", ".exe"); |
109 | Enter( Win64GUI, cpuAMD64, 64, 8, osWIN64, "win64gui", "Windows64", ".exe"); |
137 | Enter( Win64GUI, cpuAMD64, 8, osWIN64, "win64gui", "Windows64", ".exe"); |
110 | Enter( Win64DLL, cpuAMD64, 64, 8, osWIN64, "win64dll", "Windows64", ".dll"); |
138 | Enter( Win64DLL, cpuAMD64, 8, osWIN64, "win64dll", "Windows64", ".dll"); |
- | 139 | Enter( Linux32, cpuX86, 8, osLINUX32, "linux32exe", "Linux32", ""); |
|
111 | Enter( Linux32, cpuX86, 32, 8, osLINUX32, "linux32exe", "Linux32", ""); |
140 | Enter( Linux32SO, cpuX86, 8, osLINUX32, "linux32so", "Linux32", ".so"); |
112 | Enter( Linux32SO, cpuX86, 32, 8, osLINUX32, "linux32so", "Linux32", ".so"); |
141 | Enter( Linux64, cpuAMD64, 8, osLINUX64, "linux64exe", "Linux64", ""); |