systems.pas 25 KB

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