2
0

systems.pas 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. {
  2. $Id$
  3. Copyright (C) 1995,97 by Florian Klaempfl
  4. This unit contains informations about the target systems supported
  5. (these are not processor specific)
  6. This program is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2 of the License, or
  9. (at your option) any later version.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14. You should have received a copy of the GNU General Public License
  15. along with this program; if not, write to the Free Software
  16. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17. ****************************************************************************
  18. }
  19. unit systems;
  20. interface
  21. type
  22. tendian = (endian_little,en_big_endian);
  23. tprocessors = (
  24. {$ifdef i386}
  25. i386,i486,pentium,pentiumpro,cx6x86,pentium2,amdk6
  26. {$endif}
  27. {$ifdef m68k}
  28. MC68000,MC68020
  29. {$endif}
  30. );
  31. tasmmode = (
  32. {$ifdef i386}
  33. I386_ATT,I386_INTEL,I386_DIRECT
  34. {$endif}
  35. {$ifdef m68k}
  36. M68K_MOT
  37. {$endif}
  38. );
  39. ttarget = (target_GO32V1,target_GO32V2,target_LINUX,target_OS2,
  40. target_WIN32,target_Amiga,target_Atari,target_Mac68k);
  41. tos = (os_GO32V1, os_GO32V2, os_Linux, os_OS2,
  42. os_WIN32, os_Amiga, os_Atari, os_Mac68k);
  43. tasm = (as_o
  44. {$ifdef i386}
  45. ,as_asw,as_nasmcoff, as_nasmelf, as_nasmobj, as_tasm, as_masm
  46. {$endif}
  47. {$ifdef m68k}
  48. ,as_gas,as_mit,as_mot
  49. {$endif}
  50. );
  51. tlink = (link_ld
  52. {$ifdef i386}
  53. ,link_ldgo32v1, link_ldgo32v2, link_ldw, link_ldos2
  54. {$endif i386}
  55. {$ifdef m68k}
  56. {$endif}
  57. );
  58. tosinfo = record
  59. name : string[30];
  60. sharedlibext,
  61. staticlibext,
  62. sourceext,
  63. pasext,
  64. exeext,
  65. scriptext : string[4];
  66. Cprefix : string[2];
  67. newline : string[2];
  68. endian : tendian;
  69. use_function_relative_addresses : boolean;
  70. end;
  71. tasminfo = record
  72. id : tasm;
  73. idtxt : string[8];
  74. asmbin : string[8];
  75. asmcmd : string[50];
  76. externals : boolean;
  77. labelprefix : string[2];
  78. comment : string[2];
  79. end;
  80. tlinkinfo = record
  81. linkbin : string[8];
  82. linkcmd : string[50];
  83. bindbin : string[8];
  84. bindcmd : string[50];
  85. stripopt : string[2];
  86. libpathprefix : string[12];
  87. libpathsuffix : string[2];
  88. groupstart : string[8];
  89. groupend : string[2];
  90. inputstart : string[8];
  91. inputend : string[2];
  92. libprefix : string[2];
  93. end;
  94. ttargetinfo = record
  95. target : ttarget;
  96. short_name : string[8];
  97. unit_env : string[12];
  98. system_unit : string[8];
  99. smartext,
  100. unitext,
  101. unitlibext,
  102. asmext,
  103. objext,
  104. exeext : string[4];
  105. os : tos;
  106. link : tlink;
  107. assem : tasm;
  108. end;
  109. tasmmodeinfo=record
  110. id : tasmmode;
  111. idtxt : string[8];
  112. end;
  113. var
  114. target_info : ttargetinfo;
  115. target_os : tosinfo;
  116. target_asm : tasminfo;
  117. target_link : tlinkinfo;
  118. source_os : tosinfo;
  119. function set_string_target(const s : string) : boolean;
  120. function set_string_asm(const s : string) : boolean;
  121. function set_string_asmmode(const s:string;var t:tasmmode):boolean;
  122. implementation
  123. const
  124. {****************************************************************************
  125. OS Info
  126. ****************************************************************************}
  127. os_infos : array[tos] of tosinfo = (
  128. (
  129. name : 'GO32 V1 DOS extender';
  130. sharedlibext : '.DLL';
  131. staticlibext : '.A';
  132. sourceext : '.PP';
  133. pasext : '.PAS';
  134. exeext : ''; { No .exe, the linker only output a.out ! }
  135. scriptext : '.BAT';
  136. Cprefix : '_';
  137. newline : #13#10;
  138. endian : endian_little;
  139. use_function_relative_addresses : true
  140. ),
  141. (
  142. name : 'GO32 V2 DOS extender';
  143. sharedlibext : '.DLL';
  144. staticlibext : '.A';
  145. sourceext : '.PP';
  146. pasext : '.PAS';
  147. exeext : '.EXE';
  148. scriptext : '.BAT';
  149. Cprefix : '_';
  150. newline : #13#10;
  151. endian : endian_little;
  152. use_function_relative_addresses : true
  153. ),
  154. (
  155. name : 'Linux';
  156. sharedlibext : '.so';
  157. staticlibext : '.a';
  158. sourceext : '.pp';
  159. pasext : '.pas';
  160. exeext : '';
  161. scriptext : '.sh';
  162. Cprefix : '';
  163. newline : #10;
  164. endian : endian_little;
  165. use_function_relative_addresses : true
  166. ),
  167. (
  168. name : 'OS/2 (32bit)';
  169. sharedlibext : '.ao2';
  170. staticlibext : '.a';
  171. sourceext : '.pp';
  172. pasext : '.pas';
  173. exeext : '.exe';
  174. scriptext : '.cmd';
  175. Cprefix : '_';
  176. newline : #13#10;
  177. endian : endian_little;
  178. use_function_relative_addresses : false
  179. ),
  180. (
  181. name : 'Win32';
  182. sharedlibext : '.dll';
  183. staticlibext : '.a';
  184. sourceext : '.pp';
  185. pasext : '.pas';
  186. exeext : '.exe';
  187. scriptext : '.bat';
  188. Cprefix : '_';
  189. newline : #13#10;
  190. endian : endian_little;
  191. use_function_relative_addresses : true
  192. ),
  193. (
  194. name : 'Commodore Amiga';
  195. sharedlibext : '.library';
  196. staticlibext : '.a';
  197. sourceext : '.pp';
  198. pasext : '.pas';
  199. exeext : '';
  200. scriptext : '';
  201. Cprefix : '';
  202. newline : #10;
  203. endian : en_big_endian;
  204. use_function_relative_addresses : false
  205. ),
  206. (
  207. name : 'Atari ST/STE';
  208. sharedlibext : '.dll';
  209. staticlibext : '.a';
  210. sourceext : '.pp';
  211. pasext : '.pas';
  212. exeext : '.tpp';
  213. scriptext : '';
  214. Cprefix : '';
  215. newline : #10;
  216. endian : en_big_endian;
  217. use_function_relative_addresses : false
  218. ),
  219. (
  220. name : 'Macintosh m68k';
  221. sharedlibext : '.dll';
  222. staticlibext : '.a';
  223. sourceext : '.pp';
  224. pasext : '.pas';
  225. exeext : '.tpp';
  226. scriptext : '';
  227. Cprefix : '';
  228. newline : #10;
  229. endian : en_big_endian;
  230. use_function_relative_addresses : false
  231. )
  232. );
  233. {****************************************************************************
  234. Assembler Info
  235. ****************************************************************************}
  236. as_infos : array[tasm] of tasminfo = (
  237. (
  238. id : as_o;
  239. idtxt : 'O';
  240. asmbin : 'as';
  241. asmcmd : '-D -o $OBJ $ASM';
  242. externals : false;
  243. labelprefix : '.L';
  244. comment : '# '
  245. )
  246. {$ifdef i386}
  247. ,(
  248. id : as_asw;
  249. idtxt : 'ASW';
  250. asmbin : 'asw';
  251. asmcmd : '-D -o $OBJ $ASM';
  252. externals : false;
  253. labelprefix : '.L';
  254. comment : '# '
  255. )
  256. ,(
  257. id : as_nasmcoff;
  258. idtxt : 'NASMCOFF';
  259. asmbin : 'nasm';
  260. asmcmd : '-f coff -o $OBJ $ASM';
  261. externals : true;
  262. labelprefix : 'L';
  263. comment : '; '
  264. )
  265. ,(
  266. id : as_nasmelf;
  267. idtxt : 'NASMELF';
  268. asmbin : 'nasm';
  269. asmcmd : '-f elf -o $OBJ $ASM';
  270. externals : true;
  271. labelprefix : 'L';
  272. comment : '; '
  273. )
  274. ,(
  275. id : as_nasmobj;
  276. idtxt : 'NASMOBJ';
  277. asmbin : 'nasm';
  278. asmcmd : '-f obj -o $OBJ $ASM';
  279. externals : true;
  280. labelprefix : 'L';
  281. comment : '; '
  282. )
  283. ,(
  284. id : as_tasm;
  285. idtxt : 'TASM';
  286. asmbin : 'tasm';
  287. asmcmd : '/m2 $ASM $OBJ';
  288. externals : true;
  289. labelprefix : '.L';
  290. comment : '; '
  291. )
  292. ,(
  293. id : as_tasm;
  294. idtxt : 'MASM';
  295. asmbin : 'masm';
  296. asmcmd : '$ASM $OBJ';
  297. externals : true;
  298. labelprefix : '.L';
  299. comment : '; '
  300. )
  301. {$endif}
  302. {$ifdef m68k}
  303. ,(
  304. id : as_gas;
  305. idtxt : 'GAS';
  306. asmbin : 'as68k'; { Gas for the Amiga}
  307. asmcmd : '-D --register-prefix-optional -o $OBJ $ASM';
  308. externals : false;
  309. labelprefix : '__L';
  310. comment : '| '
  311. )
  312. ,(
  313. id : as_mit;
  314. idtxt : 'MIT';
  315. asmbin : '';
  316. asmcmd : '-o $OBJ $ASM';
  317. externals : false;
  318. labelprefix : '__L';
  319. comment : '| '
  320. )
  321. ,(
  322. id : as_mot;
  323. idtxt : 'MOT';
  324. asmbin : '';
  325. asmcmd : '-o $OBJ $ASM';
  326. externals : false;
  327. labelprefix : '__L';
  328. comment : '| '
  329. )
  330. {$endif}
  331. );
  332. {****************************************************************************
  333. Linker Info
  334. ****************************************************************************}
  335. link_infos : array[tlink] of tlinkinfo = (
  336. (
  337. linkbin : 'ld';
  338. linkcmd : '$OPT -o $EXE $RES';
  339. bindbin : '';
  340. bindcmd : '';
  341. stripopt : '-s';
  342. libpathprefix : 'SEARCH_DIR(';
  343. libpathsuffix : ')';
  344. groupstart : 'GROUP(';
  345. groupend : ')';
  346. inputstart : 'INPUT(';
  347. inputend : ')';
  348. libprefix : '-l'
  349. )
  350. {$ifdef i386}
  351. ,(
  352. linkbin : 'ld';
  353. linkcmd : '-oformat coff-go32 $OPT -o $EXE @$RES';
  354. bindbin : 'aout2exe';
  355. bindcmd : '$EXE';
  356. stripopt : '-s';
  357. libpathprefix : '-L';
  358. libpathsuffix : '';
  359. groupstart : '-(';
  360. groupend : '-)';
  361. inputstart : '';
  362. inputend : '';
  363. libprefix : '-l'
  364. )
  365. ,(
  366. linkbin : 'ld';
  367. linkcmd : '-oformat coff-go32-exe $OPT -o $EXE @$RES';
  368. bindbin : '';
  369. bindcmd : '';
  370. stripopt : '-s';
  371. libpathprefix : '-L';
  372. libpathsuffix : '';
  373. groupstart : '-(';
  374. groupend : '-)';
  375. inputstart : '';
  376. inputend : '';
  377. libprefix : '-l'
  378. )
  379. ,(
  380. linkbin : 'ldw';
  381. linkcmd : '$OPT -o $EXE $RES';
  382. bindbin : '';
  383. bindcmd : '';
  384. stripopt : '-s';
  385. libpathprefix : 'SEARCH_DIR(';
  386. libpathsuffix : ')';
  387. groupstart : 'GROUP(';
  388. groupend : ')';
  389. inputstart : 'INPUT(';
  390. inputend : ')';
  391. libprefix : '-l'
  392. )
  393. ,(
  394. linkbin : 'ld';
  395. linkcmd : '-o $EXE @$RES';
  396. bindbin : 'emxbind';
  397. bindcmd : '-o $EXE.exe $EXE -k$STACKKB -aim -s$HEAPKB';
  398. stripopt : '-s';
  399. libpathprefix : '-L';
  400. libpathsuffix : '';
  401. groupstart : '-(';
  402. groupend : '-)';
  403. inputstart : '';
  404. inputend : '';
  405. libprefix : ''
  406. )
  407. {$endif i386}
  408. );
  409. {****************************************************************************
  410. Targets Info
  411. ****************************************************************************}
  412. target_infos : array[ttarget] of ttargetinfo = (
  413. (
  414. target : target_GO32V1;
  415. short_name : 'GO32V1';
  416. unit_env : 'GO32V1UNITS';
  417. system_unit : 'SYSTEM';
  418. smartext : '.SL';
  419. unitext : '.PP1';
  420. unitlibext : '.PPL';
  421. asmext : '.S1';
  422. objext : '.O1';
  423. exeext : ''; { The linker procedures a.out }
  424. os : os_GO32V1;
  425. link : link_ldgo32v1;
  426. assem : as_o
  427. ),
  428. (
  429. target : target_GO32V2;
  430. short_name : 'GO32V2';
  431. unit_env : 'GO32V2UNITS';
  432. system_unit : 'SYSTEM';
  433. {$ifndef UseAnsiString}
  434. smartext : '.SL';
  435. unitext : '.PPU';
  436. unitlibext : '.PPL';
  437. asmext : '.S';
  438. objext : '.O';
  439. exeext : '.EXE';
  440. {$else UseAnsiString}
  441. smartext : '.SL';
  442. unitext : '.PAU';
  443. unitlibext : '.PPL';
  444. asmext : '.SA';
  445. objext : '.OA';
  446. exeext : '.EXE';
  447. {$endif UseAnsiString}
  448. os : os_GO32V2;
  449. link : link_ldgo32v2;
  450. assem : as_o
  451. ),
  452. (
  453. target : target_LINUX;
  454. short_name : 'LINUX';
  455. unit_env : 'LINUXUNITS';
  456. system_unit : 'syslinux';
  457. smartext : '.sl';
  458. unitext : '.ppu';
  459. unitlibext : '.ppl';
  460. asmext : '.s';
  461. objext : '.o';
  462. exeext : '';
  463. os : os_Linux;
  464. link : link_ld;
  465. assem : as_o
  466. ),
  467. (
  468. target : target_OS2;
  469. short_name : 'OS2';
  470. unit_env : 'OS2UNITS';
  471. system_unit : 'SYSOS2';
  472. smartext : '.sl';
  473. unitext : '.ppo';
  474. unitlibext : '.ppl';
  475. asmext : '.so2';
  476. objext : '.oo2';
  477. exeext : ''; { The linker procedures a.out }
  478. os : os_OS2;
  479. link : link_ldos2;
  480. assem : as_o
  481. ),
  482. (
  483. target : target_WIN32;
  484. short_name : 'WIN32';
  485. unit_env : 'WIN32UNITS';
  486. system_unit : 'SYSWIN32';
  487. smartext : '.sl';
  488. unitext : '.ppw';
  489. unitlibext : '.ppl';
  490. asmext : '.s';
  491. objext : '.o';
  492. exeext : '.exe';
  493. os : os_Win32;
  494. link : link_ldw;
  495. assem : as_asw
  496. ),
  497. (
  498. target : target_Amiga;
  499. short_name : 'AMIGA';
  500. unit_env : '';
  501. system_unit : 'sysamiga';
  502. smartext : '.sl';
  503. unitext : '.ppa';
  504. unitlibext : '.ppl';
  505. asmext : '.asm';
  506. objext : '.o';
  507. exeext : '';
  508. os : os_Amiga;
  509. link : link_ld;
  510. assem : as_o
  511. ),
  512. (
  513. target : target_Atari;
  514. short_name : 'ATARI';
  515. unit_env : '';
  516. system_unit : 'SYSATARI';
  517. smartext : '.sl';
  518. unitext : '.ppt';
  519. unitlibext : '.ppl';
  520. asmext : '.s';
  521. objext : '.o';
  522. exeext : '';
  523. os : os_Atari;
  524. link : link_ld;
  525. assem : as_o
  526. ),
  527. (
  528. target : target_Mac68k;
  529. short_name : 'MACOS';
  530. unit_env : '';
  531. system_unit : 'sysmac';
  532. smartext : '.sl';
  533. unitext : '.ppt';
  534. unitlibext : '.ppl';
  535. asmext : '.s';
  536. objext : '.o';
  537. exeext : '';
  538. os : os_Mac68k;
  539. link : link_ld;
  540. assem : as_o
  541. )
  542. );
  543. {****************************************************************************
  544. AsmModeInfo
  545. ****************************************************************************}
  546. asmmodeinfos : array[tasmmode] of tasmmodeinfo = (
  547. {$ifdef i386}
  548. (
  549. id : I386_DIRECT;
  550. idtxt : 'DIRECT'
  551. ),
  552. (
  553. id : I386_INTEL;
  554. idtxt : 'INTEL'
  555. ),
  556. (
  557. id : I386_ATT;
  558. idtxt : 'ATT'
  559. )
  560. {$endif}
  561. {$ifdef m68k}
  562. (
  563. id : M68K_MOT;
  564. idtxt : 'MOT'
  565. )
  566. {$endif}
  567. );
  568. {****************************************************************************
  569. Helpers
  570. ****************************************************************************}
  571. procedure set_target(t : ttarget);
  572. begin
  573. target_info:=target_infos[t];
  574. target_os:=os_infos[target_info.os];
  575. target_asm:=as_infos[target_info.assem];
  576. target_link:=link_infos[target_info.link];
  577. end;
  578. {****************************************************************************
  579. Load from string
  580. ****************************************************************************}
  581. function set_string_target(const s : string) : boolean;
  582. var
  583. t : ttarget;
  584. begin
  585. set_string_target:=false;
  586. for t:=target_GO32V1 to target_mac68k do
  587. if target_infos[t].short_name=s then
  588. begin
  589. set_string_target:=true;
  590. set_target(t);
  591. end;
  592. end;
  593. function set_string_asm(const s : string) : boolean;
  594. var
  595. j : longint;
  596. begin
  597. set_string_asm:=false;
  598. for j:=0 to (sizeof(as_infos) div sizeof(tasminfo))-1 do
  599. if as_infos[tasm(j)].idtxt=s then
  600. begin
  601. target_asm:=as_infos[tasm(j)];
  602. set_string_asm:=true;
  603. end;
  604. end;
  605. function set_string_asmmode(const s:string;var t:tasmmode):boolean;
  606. var
  607. i : longint;
  608. begin
  609. set_string_asmmode:=false;
  610. for i:=0 to (sizeof(asmmodeinfos) div sizeof(tasmmodeinfo))-1 do
  611. if asmmodeinfos[tasmmode(i)].idtxt=s then
  612. begin
  613. t:=asmmodeinfos[tasmmode(i)].id;
  614. set_string_asmmode:=true;
  615. end;
  616. end;
  617. {****************************************************************************
  618. Initialization of default target
  619. ****************************************************************************}
  620. procedure default_os(t:ttarget);
  621. begin
  622. set_target(t);
  623. source_os:=os_infos[target_info.os];
  624. end;
  625. begin
  626. {$ifdef tp}
  627. default_os(target_GO32V2);
  628. {$else}
  629. {$ifdef DOS}
  630. default_os(target_GO32V1);
  631. {$endif}
  632. {$ifdef GO32V1}
  633. default_os(target_GO32V1);
  634. {$endif}
  635. {$ifdef GO32V2}
  636. default_os(target_GO32V2);
  637. {$endif}
  638. {$ifdef OS2}
  639. default_os(target_OS2);
  640. {$endif}
  641. {$ifdef LINUX}
  642. default_os(target_LINUX);
  643. {$endif}
  644. {$ifdef WIN32}
  645. default_os(target_WIN32);
  646. {$endif}
  647. {$ifdef AMIGA}
  648. default_os(target_AMIGA);
  649. {$endif}
  650. {$ifdef ATARI}
  651. default_os(target_ATARI);
  652. {$endif}
  653. {$ifdef MACOS}
  654. default_os(target_MAC68k);
  655. {$endif}
  656. {$endif}
  657. end.
  658. {
  659. $Log$
  660. Revision 1.16 1998-06-01 16:50:22 peter
  661. + boolean -> ord conversion
  662. * fixed ord -> boolean conversion
  663. Revision 1.15 1998/05/30 14:31:11 peter
  664. + $ASMMODE
  665. Revision 1.14 1998/05/29 13:24:45 peter
  666. + asw assembler
  667. Revision 1.13 1998/05/27 00:20:33 peter
  668. * some scanner optimizes
  669. * automaticly aout2exe for go32v1
  670. * fixed dynamiclinker option which was added at the wrong place
  671. Revision 1.12 1998/05/23 01:21:32 peter
  672. + aktasmmode, aktoptprocessor, aktoutputformat
  673. + smartlink per module $SMARTLINK-/+ (like MMX) and moved to aktswitches
  674. + $LIBNAME to set the library name where the unit will be put in
  675. * splitted cgi386 a bit (codeseg to large for bp7)
  676. * nasm, tasm works again. nasm moved to ag386nsm.pas
  677. Revision 1.11 1998/05/22 12:32:49 peter
  678. * fixed -L on the commandline, Dos commandline is only 128 bytes
  679. Revision 1.10 1998/05/11 13:07:58 peter
  680. + $ifdef NEWPPU for the new ppuformat
  681. + $define GDB not longer required
  682. * removed all warnings and stripped some log comments
  683. * no findfirst/findnext anymore to remove smartlink *.o files
  684. Revision 1.9 1998/05/06 08:38:49 pierre
  685. * better position info with UseTokenInfo
  686. UseTokenInfo greatly simplified
  687. + added check for changed tree after first time firstpass
  688. (if we could remove all the cases were it happen
  689. we could skip all firstpass if firstpasscount > 1)
  690. Only with ExtDebug
  691. Revision 1.8 1998/05/04 20:19:54 peter
  692. * small fix for go32v2
  693. Revision 1.7 1998/05/04 17:54:29 peter
  694. + smartlinking works (only case jumptable left todo)
  695. * redesign of systems.pas to support assemblers and linkers
  696. + Unitname is now also in the PPU-file, increased version to 14
  697. Revision 1.6 1998/05/01 07:43:57 florian
  698. + basics for rtti implemented
  699. + switch $m (generate rtti for published sections)
  700. Revision 1.5 1998/04/29 10:34:06 pierre
  701. + added some code for ansistring (not complete nor working yet)
  702. * corrected operator overloading
  703. * corrected nasm output
  704. + started inline procedures
  705. + added starstarn : use ** for exponentiation (^ gave problems)
  706. + started UseTokenInfo cond to get accurate positions
  707. Revision 1.4 1998/04/27 15:45:20 peter
  708. + -Xl for smartlink
  709. + target_info.arext = .a
  710. Revision 1.3 1998/04/16 10:50:45 daniel
  711. * Fixed some things that were broken for OS/2.
  712. }