fpmake.pp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714
  1. {$ifndef ALLPACKAGES}
  2. {$mode objfpc}{$H+}
  3. program fpmake;
  4. uses fpmkunit;
  5. Var
  6. T : TTarget;
  7. P : TPackage;
  8. begin
  9. With Installer do
  10. begin
  11. {$endif ALLPACKAGES}
  12. P:=AddPackage('rtl');
  13. {$ifdef ALLPACKAGES}
  14. P.Directory:='rtl';
  15. {$endif ALLPACKAGES}
  16. P.Version:='3.3.1';
  17. // Where to find the sources using firstmatch
  18. P.SourcePath.Add('$(OS)');
  19. P.SourcePath.Add('$(CPU)');
  20. P.SourcePath.Add('bsd',AllBSDOSes);
  21. P.SourcePath.Add('unix',AllUnixOSes);
  22. P.SourcePath.Add('win',AllWindowsOSes);
  23. P.SourcePath.Add('inc');
  24. P.SourcePath.Add('objpas');
  25. // Where to find the include files using firstmatch
  26. P.IncludePath.Add('$(OS)/$(CPU)',AllUnixOSes);
  27. P.IncludePath.Add('$(OS)');
  28. P.IncludePath.Add('$(CPU)');
  29. P.IncludePath.Add('bsd',AllBSDOSes);
  30. P.IncludePath.Add('bsd/$(CPU)',AllBSDOSes-[Darwin]);
  31. P.IncludePath.Add('unix',AllUnixOSes);
  32. P.IncludePath.Add('win',AllWindowsOSes);
  33. P.IncludePath.Add('inc');
  34. P.IncludePath.Add('objpas');
  35. // System unit
  36. T:=P.Targets.AddUnit('system.pp');
  37. With T.Dependencies do
  38. begin
  39. // Headers
  40. AddInclude('setjumph.inc');
  41. AddInclude('systemh.inc');
  42. AddInclude('objpash.inc');
  43. AddInclude('mathh.inc');
  44. AddInclude('wstringh.inc');
  45. AddInclude('dynarrh.inc');
  46. AddInclude('compproc.inc');
  47. AddInclude('heaph.inc');
  48. AddInclude('threadh.inc');
  49. AddInclude('varianth.inc');
  50. AddInclude('sysosh.inc');
  51. AddInclude('resh.inc');
  52. AddInclude('currh.inc');
  53. // Implementations
  54. AddInclude('set.inc');
  55. AddInclude('int64p.inc');
  56. AddInclude('setjump.inc');
  57. AddInclude('sysos.inc');
  58. AddInclude('sysheap.inc');
  59. AddInclude('sysdir.inc');
  60. AddInclude('sysfile.inc');
  61. AddInclude('sysres.inc');
  62. AddInclude('except.inc');
  63. AddInclude('threadvr.inc');
  64. AddInclude('filerec.inc');
  65. AddInclude('textrec.inc');
  66. AddInclude('generic.inc');
  67. AddInclude('genset.inc');
  68. AddInclude('genmath.inc');
  69. AddInclude('gencurr.inc');
  70. AddInclude('sstrings.inc');
  71. AddInclude('int64.inc');
  72. AddInclude('astrings.inc');
  73. AddInclude('wstrings.inc');
  74. AddInclude('aliases.inc');
  75. AddInclude('dynarr.inc');
  76. AddInclude('objpas.inc');
  77. AddInclude('variant.inc');
  78. AddInclude('rtti.inc');
  79. AddInclude('heap.inc');
  80. AddInclude('thread.inc');
  81. AddInclude('text.inc');
  82. AddInclude('file.inc');
  83. AddInclude('typefile.inc');
  84. AddInclude('innr.inc');
  85. AddInclude('$(CPU).inc');
  86. AddInclude('fastmove.inc',[i386],AllOSes);
  87. AddInclude('math.inc');
  88. AddInclude('flt_conv.inc');
  89. AddInclude('flt_core.inc');
  90. AddInclude('flt_pack.inc');
  91. AddInclude('systhrd.inc',AllWindowsOSes+[Netware,Netwlibc,EMX,OS2]);
  92. // Unix implementations
  93. AddInclude('osdefs.inc',AllUnixOSes);
  94. AddInclude('sysunixh.inc',AllUnixOSes);
  95. AddInclude('system.inc',AllUnixOSes);
  96. AddInclude('errno.inc',AllUnixOSes);
  97. AddInclude('ostypes.inc',AllUnixOSes);
  98. AddInclude('ptypes.inc',AllUnixOSes);
  99. AddInclude('ctypes.inc',AllUnixOSes);
  100. AddInclude('stat.inc',[Linux]);
  101. AddInclude('signal.inc',AllUnixOSes);
  102. AddInclude('sighnd.inc',AllUnixOSes-[Beos]);
  103. AddInclude('sighndh.inc',[Linux,Solaris]);
  104. AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
  105. AddInclude('syscall.inc',[Linux,Beos,FreeBSD]);
  106. AddInclude('sysnr.inc',[Linux,Beos,FreeBSD]);
  107. AddInclude('ossysc.inc',AllUnixOSes-[Solaris]);
  108. AddInclude('osmacro.inc',AllUnixOSes);
  109. // Windows implementations
  110. AddInclude('winres.inc',AllWindowsOSes);
  111. end;
  112. // Compile mode units
  113. T:=P.Targets.AddUnit('objpas.pp');
  114. T.Dependencies.AddUnit('system');
  115. T:=P.Targets.AddUnit('macpas.pp');
  116. T.Dependencies.AddUnit('system');
  117. // Unix units
  118. T:=P.Targets.AddUnit('unixtype.pp',AllUnixOSes);
  119. With T.Dependencies do
  120. begin
  121. AddUnit('system');
  122. end;
  123. T:=P.Targets.AddUnit('unixutil.pp',AllUnixOSes);
  124. with T.Dependencies do
  125. begin
  126. AddInclude('textrec.inc');
  127. AddInclude('filerec.inc');
  128. AddUnit('system');
  129. end;
  130. T:=P.Targets.AddUnit('baseunix.pp',AllUnixOSes);
  131. With T.Dependencies do
  132. begin
  133. AddUnit('unixtype');
  134. AddInclude('osdefs.inc');
  135. AddInclude('aliasptp.inc');
  136. AddInclude('aliasctp.inc');
  137. AddInclude('errno.inc');
  138. AddInclude('ostypes.inc');
  139. AddInclude('stat.inc',[Linux]);
  140. AddInclude('signal.inc');
  141. AddInclude('sighndh.inc',[Linux,Solaris]);
  142. AddInclude('bunxh.inc');
  143. AddInclude('bunxovlh.inc');
  144. AddInclude('genfunch.inc');
  145. AddInclude('genfuncs.inc');
  146. AddInclude('gensigset.inc');
  147. AddInclude('genfdset.inc');
  148. AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
  149. AddInclude('sysnr.inc',[Linux,Beos,FreeBSD]);
  150. AddInclude('bsyscall.inc',[Linux,FreeBSD]);
  151. AddInclude('bunxsysc.inc',[Linux,FreeBSD]);
  152. AddInclude('settimeo.inc');
  153. AddInclude('osmacro.inc');
  154. AddInclude('bunxovl.inc');
  155. AddInclude('textrec.inc');
  156. AddInclude('filerec.inc');
  157. end;
  158. T:=P.Targets.AddUnit('unix.pp',AllUnixOSes);
  159. with T.Dependencies do
  160. begin
  161. AddUnit('baseunix');
  162. AddUnit('unixutil');
  163. AddInclude('aliasptp.inc');
  164. AddInclude('aliasctp.inc');
  165. AddInclude('unxconst.inc');
  166. AddInclude('unxsysch.inc',[Linux,FreeBSD]);
  167. AddInclude('unxsysc.inc',[Linux,FreeBSD]);
  168. AddInclude('unxovlh.inc');
  169. AddInclude('unxovl.inc');
  170. AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
  171. AddInclude('textrec.inc');
  172. AddInclude('filerec.inc');
  173. AddInclude('unxfunc.inc');
  174. AddInclude('timezone.inc');
  175. end;
  176. T:=P.Targets.AddUnit('termio.pp',AllUnixOSes);
  177. with T.Dependencies do
  178. begin
  179. AddUnit('baseunix');
  180. AddInclude('termios.inc');
  181. AddInclude('termiosh.inc');
  182. AddInclude('textrec.inc');
  183. AddInclude('termiosproc.inc');
  184. end;
  185. T:=P.Targets.AddUnit('unix/errors.pp',AllUnixOSes);
  186. with T.Dependencies do
  187. begin
  188. AddUnit('unixtype');
  189. AddInclude('errnostr.inc');
  190. end;
  191. T:=P.Targets.AddUnit('unix/syscall.pp',[Linux,Beos,FreeBSD]);
  192. with T.Dependencies do
  193. begin
  194. AddInclude('sysnr.inc');
  195. AddInclude('syscallh.inc');
  196. end;
  197. T:=P.Targets.AddUnit('unix/terminfo.pp',AllUnixOSes);
  198. T.Dependencies.AddUnit('baseunix',AllUnixOSes);
  199. T:=P.Targets.AddUnit('unix/dl.pp',AllUnixOSes);
  200. T.Dependencies.AddUnit('system');
  201. T:=P.Targets.AddUnit('unix/ipc.pp',AllUnixOSes - [Android]);
  202. With T.Dependencies do
  203. begin
  204. AddUnit('baseunix');
  205. AddUnit('syscall',[Linux,Beos,FreeBSD]);
  206. AddInclude('ipccall.inc',[Linux]);
  207. AddInclude('ipcbsd.inc',[FreeBSD]);
  208. end;
  209. // Linux units
  210. T:=P.Targets.AddUnit('si_c21g.pp',[i386],[Linux]);
  211. With T.Dependencies do
  212. begin
  213. AddUnit('system');
  214. AddInclude('si_intf.inc');
  215. AddInclude('sysnr.inc');
  216. AddInclude('si_c21g.inc');
  217. end;
  218. T:=P.Targets.AddUnit('si_c21.pp',[i386],[Linux]);
  219. With T.Dependencies do
  220. begin
  221. AddUnit('system');
  222. AddInclude('si_intf.inc');
  223. AddInclude('sysnr.inc');
  224. AddInclude('si_c21.inc');
  225. end;
  226. T:=P.Targets.AddUnit('si_c.pp',[i386,x86_64],[Linux]);
  227. With T.Dependencies do
  228. begin
  229. AddUnit('system');
  230. AddInclude('si_intf.inc');
  231. AddInclude('sysnr.inc');
  232. AddInclude('si_c.inc');
  233. end;
  234. T:=P.Targets.AddUnit('si_dll.pp',[i386],[Linux]);
  235. With T.Dependencies do
  236. begin
  237. AddUnit('system');
  238. AddInclude('si_intf.inc');
  239. AddInclude('sysnr.inc');
  240. AddInclude('si_dll.inc');
  241. end;
  242. T:=P.Targets.AddUnit('si_prc.pp',[i386,x86_64],[Linux]);
  243. With T.Dependencies do
  244. begin
  245. AddUnit('system');
  246. AddInclude('si_intf.inc');
  247. AddInclude('sysnr.inc');
  248. AddInclude('si_prc.inc');
  249. end;
  250. T:=P.Targets.AddUnit('si_uc.pp',[i386],[Linux]);
  251. With T.Dependencies do
  252. begin
  253. AddUnit('system');
  254. AddInclude('si_intf.inc');
  255. AddInclude('sysnr.inc');
  256. AddInclude('si_uc.inc');
  257. end;
  258. T:=P.Targets.AddUnit('linux.pp',[Linux]);
  259. with T.Dependencies do
  260. begin
  261. AddUnit('baseunix');
  262. AddUnit('syscall');
  263. end;
  264. T:=P.Targets.AddUnit('gpm.pp',[Linux]);
  265. With T.Dependencies do
  266. begin
  267. AddUnit('termio');
  268. AddUnit('sockets');
  269. AddUnit('strings');
  270. AddUnit('unix');
  271. end;
  272. T:=P.Targets.AddUnit('linuxvcs.pp',[Linux]);
  273. with T.Dependencies do
  274. begin
  275. AddUnit('baseunix');
  276. AddUnit('strings');
  277. end;
  278. T:=P.Targets.AddUnit('x86.pp',[i386,x86_64],[Linux]);
  279. T.Dependencies.AddUnit('system');
  280. T.Dependencies.AddUnit('baseunix');
  281. T:=P.Targets.AddUnit('ports.pp',[i386,x86_64],[Linux]);
  282. with T.Dependencies do
  283. begin
  284. AddUnit('objpas');
  285. AddUnit('x86');
  286. end;
  287. T:=P.Targets.AddUnit('fpcylix.pp',[i386],[Linux]);
  288. With T.Dependencies do
  289. begin
  290. AddUnit('cthreads');
  291. AddUnit('cwstring');
  292. AddUnit('dynlibs');
  293. end;
  294. // Windows units
  295. T:=P.Targets.AddUnit('sysinitcyg.pp',AllWindowsOSes-[WinCE]);
  296. T.Dependencies.AddUnit('system');
  297. T:=P.Targets.AddUnit('sysinitgprof.pp',AllWindowsOSes-[WinCE]);
  298. T.Dependencies.AddUnit('system');
  299. T:=P.Targets.AddUnit('sysinitpas.pp',AllWindowsOSes-[WinCE]);
  300. T.Dependencies.AddUnit('system');
  301. T:=P.Targets.AddUnit('windows.pp',AllWindowsOSes);
  302. T.IncludePath.Add('win/wininc');
  303. with T.Dependencies do
  304. begin
  305. AddInclude('base.inc');
  306. AddInclude('errors.inc');
  307. AddInclude('defines.inc');
  308. AddInclude('struct.inc');
  309. AddInclude('messages.inc');
  310. AddInclude('ascfun.inc');
  311. AddInclude('unifun.inc');
  312. AddInclude('ascdef.inc');
  313. AddInclude('func.inc');
  314. AddInclude('redef.inc');
  315. AddInclude('base.inc');
  316. AddInclude('errors.inc');
  317. AddInclude('defines.inc');
  318. AddInclude('struct.inc');
  319. AddInclude('messages.inc');
  320. AddInclude('ascfun.inc');
  321. AddInclude('unifun.inc');
  322. AddInclude('ascdef.inc');
  323. AddInclude('func.inc');
  324. AddInclude('redef.inc');
  325. AddUnit('objpas');
  326. end;
  327. T:=P.Targets.AddUnit('winevent.pp',AllWindowsOSes);
  328. with T.Dependencies do
  329. begin
  330. AddUnit('windows');
  331. end;
  332. T:=P.Targets.AddUnit('winsock2.pp',AllWindowsOSes);
  333. with T.Dependencies do
  334. begin
  335. AddUnit('windows');
  336. end;
  337. T:=P.Targets.AddUnit('winsock.pp',AllWindowsOSes);
  338. with T.Dependencies do
  339. begin
  340. AddUnit('windows');
  341. end;
  342. T:=P.Targets.AddUnit('winsysut.pp',AllWindowsOSes-[WinCE]);
  343. with T.Dependencies do
  344. begin
  345. AddUnit('windows');
  346. AddUnit('sysutils');
  347. end;
  348. T:=P.Targets.AddUnit('sharemem.pp',AllWindowsOSes);
  349. with T.Dependencies do
  350. begin
  351. AddUnit('system');
  352. end;
  353. T:=P.Targets.AddUnit('signals.pp',[Win32]);
  354. with T.Dependencies do
  355. begin
  356. AddUnit('system');
  357. end;
  358. T:=P.Targets.AddUnit('messages.pp',AllWindowsOSes);
  359. T.IncludePath.Add('win/wininc');
  360. with T.Dependencies do
  361. begin
  362. AddInclude('messages.inc');
  363. AddUnit('windows');
  364. end;
  365. // Turbo Pascal RTL units
  366. T:=P.Targets.AddUnit('strings.pp');
  367. With T.Dependencies do
  368. begin
  369. AddUnit('system');
  370. AddInclude('strings.inc');
  371. AddInclude('stringss.inc');
  372. AddInclude('genstr.inc');
  373. AddInclude('genstrs.inc');
  374. AddInclude('stringsi.inc');
  375. end;
  376. T:=P.Targets.AddUnit('dos.pp');
  377. With T.Dependencies do
  378. begin
  379. AddUnit('strings');
  380. AddUnit('unix',AllUnixOSes);
  381. AddInclude('dosh.inc');
  382. AddInclude('filerec.inc');
  383. AddInclude('textrec.inc');
  384. AddInclude('dos.inc');
  385. AddInclude('fexpand.inc');
  386. end;
  387. T:=P.Targets.AddUnit('crt.pp');
  388. With T.Dependencies do
  389. begin
  390. AddUnit('unix',AllUnixOSes);
  391. AddUnit('termio',AllUnixOSes);
  392. AddInclude('crth.inc');
  393. AddInclude('textrec.inc');
  394. end;
  395. T:=P.Targets.AddUnit('objects.pp');
  396. T.Dependencies.AddUnit('dos');
  397. T:=P.Targets.AddUnit('printer.pp');
  398. with T.Dependencies do
  399. begin
  400. AddInclude('printerh.inc');
  401. AddInclude('printer.inc');
  402. AddInclude('textrec.inc');
  403. AddUnit('unix',AllUnixOSes);
  404. AddUnit('strings');
  405. end;
  406. // Object Pascal RTL units
  407. T:=P.Targets.AddUnit('rtlconsts.pp');
  408. T.Dependencies.AddUnit('objpas');
  409. T.Dependencies.AddInclude('rtlconst.inc');
  410. T:=P.Targets.AddUnit('sysconst.pp');
  411. T.Dependencies.AddUnit('objpas');
  412. T:=P.Targets.AddUnit('sysutils.pp');
  413. T.IncludePath.Add('objpas/sysutils');
  414. With T.Dependencies do
  415. begin
  416. AddUnit('sysconst');
  417. AddUnit('unix',AllUnixOSes);
  418. AddUnit('errors',AllUnixOSes);
  419. AddUnit('windows',AllWindowsOSes);
  420. AddInclude('sysutilh.inc');
  421. AddInclude('sysinth.inc');
  422. AddInclude('osutilsh.inc');
  423. AddInclude('datih.inc');
  424. AddInclude('sysstrh.inc');
  425. AddInclude('filerec.inc');
  426. AddInclude('textrec.inc');
  427. AddInclude('syspchh.inc');
  428. AddInclude('sysansih.inc');
  429. AddInclude('syswideh.inc');
  430. AddInclude('sysunih.inc');
  431. AddInclude('finah.inc');
  432. AddInclude('filutilh.inc');
  433. AddInclude('diskh.inc');
  434. AddInclude('systhrdh.inc');
  435. AddInclude('intfh.inc');
  436. AddInclude('sysutils.inc');
  437. AddInclude('fina.inc');
  438. AddInclude('fexpand.inc');
  439. AddInclude('varerror.inc');
  440. AddInclude('sysstr.inc');
  441. AddInclude('sysformt.inc');
  442. AddInclude('dati.inc');
  443. AddInclude('syspch.inc');
  444. AddInclude('strings.inc');
  445. AddInclude('genstr.inc');
  446. AddInclude('stringsi.inc');
  447. AddInclude('sysint.inc');
  448. AddInclude('sysansi.inc');
  449. AddInclude('syswide.inc');
  450. AddInclude('sysuni.inc');
  451. AddInclude('sysformt.inc');
  452. AddInclude('sysuthrd.inc');
  453. AddInclude('osutil.inc');
  454. AddInclude('sysuintf.inc');
  455. AddInclude('suuid.inc',AllUnixOSes);
  456. end;
  457. T:=P.Targets.AddUnit('types.pp');
  458. With T.Dependencies do
  459. begin
  460. AddUnit('objpas');
  461. AddUnit('windows',AllWindowsOSes);
  462. end;
  463. T:=P.Targets.AddUnit('typinfo.pp');
  464. T.Dependencies.AddUnit('sysutils');
  465. T:=P.Targets.AddUnit('classes.pp');
  466. T.IncludePath.Add('objpas/classes');
  467. With T.Dependencies do
  468. begin
  469. AddUnit('sysutils');
  470. AddUnit('types');
  471. AddUnit('typinfo');
  472. AddUnit('unix',AllUnixOSes);
  473. AddUnit('windows',AllWindowsOSes);
  474. AddInclude('classesh.inc');
  475. AddInclude('classes.inc');
  476. AddInclude('resref.inc');
  477. AddInclude('sllist.inc');
  478. AddInclude('util.inc');
  479. AddInclude('bits.inc');
  480. AddInclude('streams.inc');
  481. AddInclude('parser.inc');
  482. AddInclude('collect.inc');
  483. AddInclude('lists.inc');
  484. AddInclude('stringl.inc');
  485. AddInclude('tthread.inc');
  486. AddInclude('persist.inc');
  487. AddInclude('compon.inc');
  488. AddInclude('action.inc');
  489. AddInclude('dm.inc');
  490. AddInclude('cregist.inc');
  491. AddInclude('intf.inc');
  492. AddInclude('filer.inc');
  493. AddInclude('reader.inc');
  494. AddInclude('writer.inc');
  495. AddInclude('twriter.inc');
  496. end;
  497. T:=P.Targets.AddUnit('convutils.pp');
  498. T.Dependencies.AddUnit('objpas');
  499. T.Dependencies.AddInclude('convutil.inc');
  500. T:=P.Targets.AddUnit('dateutils.pp');
  501. With T.Dependencies do
  502. begin
  503. AddUnit('sysutils');
  504. AddUnit('math');
  505. AddUnit('types');
  506. AddUnit('sysconst');
  507. AddInclude('dateutil.inc');
  508. end;
  509. T:=P.Targets.AddUnit('stdconvs.pp');
  510. T.Dependencies.AddUnit('convutils');
  511. T:=P.Targets.AddUnit('strutils.pp');
  512. T.Dependencies.AddUnit('sysutils');
  513. T:=P.Targets.AddUnit('varutils.pp');
  514. With T.Dependencies do
  515. begin
  516. AddUnit('sysutils');
  517. AddInclude('varutilh.inc');
  518. AddInclude('varerror.inc');
  519. AddInclude('cvarutil.inc');
  520. AddInclude('varutils.inc',AllOSes-AllWindowsOSes);
  521. end;
  522. T:=P.Targets.AddUnit('variants.pp');
  523. With T.Dependencies do
  524. begin
  525. AddUnit('sysutils');
  526. AddUnit('rtlconsts');
  527. AddUnit('typinfo');
  528. end;
  529. T:=P.Targets.AddUnit('fgl.pp');
  530. T.Dependencies.AddUnit('sysutils');
  531. T.Dependencies.AddUnit('types');
  532. T:=P.Targets.AddUnit('fmtbcd.pp');
  533. T.Dependencies.AddUnit('sysutils');
  534. T.Dependencies.AddUnit('variants');
  535. T:=P.Targets.AddUnit('math.pp');
  536. With T.Dependencies do
  537. begin
  538. AddUnit('sysutils');
  539. AddInclude('mathu.inc');
  540. end;
  541. // CPU dependent units
  542. T:=P.Targets.AddUnit('cpu.pp',[i386],AllOSes);
  543. T.Dependencies.AddUnit('system');
  544. T:=P.Targets.AddUnit('mmx.pp',[i386],AllOSes);
  545. T.Dependencies.AddUnit('cpu');
  546. // C Interfacing units
  547. T:=P.Targets.AddUnit('ctypes.pp');
  548. With T.Dependencies do
  549. begin
  550. AddUnit('system');
  551. AddUnit('unixtype',AllUnixOSes);
  552. AddInclude('aliasctp.inc',AllUnixOSes);
  553. end;
  554. T:=P.Targets.AddUnit('initc.pp',AllOSes-[WinCE]);
  555. T.Dependencies.AddUnit('ctypes');
  556. T:=P.Targets.AddUnit('cmem.pp');
  557. T.Dependencies.AddUnit('system');
  558. T:=P.Targets.AddUnit('cthreads.pp',AllUnixOSes);
  559. With T.Dependencies do
  560. begin
  561. AddUnit('objpas');
  562. AddUnit('initc');
  563. AddUnit('unix');
  564. AddUnit('dl');
  565. AddInclude('pthread.inc');
  566. end;
  567. T:=P.Targets.AddUnit('cwstring.pp',AllUnixOSes);
  568. With T.Dependencies do
  569. begin
  570. AddUnit('objpas');
  571. AddUnit('initc');
  572. AddUnit('unix');
  573. AddUnit('ctypes');
  574. end;
  575. // Misc units
  576. T:=P.Targets.AddUnit('fpextres.pp',[Darwin]);
  577. with T.Dependencies do
  578. begin
  579. AddInclude('extres_multiarch.inc',[Darwin]);
  580. AddInclude('extres.inc',AllOSes-[Darwin]);
  581. end;
  582. T:=P.Targets.AddUnit('fpintres.pp',AllUnixOSes+AllWindowsOSes);
  583. with T.Dependencies do
  584. begin
  585. AddUnit('baseunix',AllUnixOSes);
  586. AddInclude('intres.inc',AllOSes-AllWindowsOSes);
  587. AddInclude('winres.inc',AllWindowsOSes);
  588. end;
  589. T:=P.Targets.AddUnit('charset.pp');
  590. with T.Dependencies do
  591. begin
  592. AddUnit('objpas');
  593. end;
  594. T:=P.Targets.AddUnit('ucomplex.pp');
  595. with T.Dependencies do
  596. begin
  597. AddUnit('math');
  598. end;
  599. T:=P.Targets.AddUnit('matrix.pp');
  600. with T.Dependencies do
  601. begin
  602. AddUnit('system');
  603. AddInclude('mvecimp.inc');
  604. AddInclude('mmatimp.inc');
  605. end;
  606. T:=P.Targets.AddUnit('getopts.pp');
  607. with T.Dependencies do
  608. begin
  609. AddUnit('system');
  610. end;
  611. T:=P.Targets.AddUnit('dynlibs.pas');
  612. With T.Dependencies do
  613. begin
  614. AddUnit('objpas');
  615. AddUnit('dl',AllUnixOSes);
  616. AddInclude('dynlibs.inc');
  617. end;
  618. // Debugging units
  619. T:=P.Targets.AddUnit('exeinfo.pp');
  620. with T.Dependencies do
  621. begin
  622. AddUnit('objpas');
  623. AddUnit('strings');
  624. end;
  625. T:=P.Targets.AddUnit('heaptrc.pp');
  626. with T.Dependencies do
  627. begin
  628. AddUnit('system');
  629. end;
  630. T:=P.Targets.AddUnit('lineinfo.pp');
  631. with T.Dependencies do
  632. begin
  633. AddUnit('exeinfo');
  634. end;
  635. T:=P.Targets.AddUnit('lnfodwrf.pp');
  636. with T.Dependencies do
  637. begin
  638. AddUnit('exeinfo');
  639. end;
  640. // IO units
  641. T:=P.Targets.AddUnit('mouse.pp');
  642. with T.Dependencies do
  643. begin
  644. AddUnit('video');
  645. AddUnit('gpm',[Linux]);
  646. AddInclude('mouseh.inc');
  647. AddInclude('mouse.inc');
  648. end;
  649. T:=P.Targets.AddUnit('video.pp');
  650. with T.Dependencies do
  651. begin
  652. AddUnit('baseunix',AllUnixOSes);
  653. AddUnit('termio',AllUnixOSes);
  654. AddUnit('strings');
  655. AddUnit('linuxvcs',[Linux]);
  656. AddUnit('windows',AllWindowsOSes);
  657. AddUnit('dos',AllWindowsOSes);
  658. AddInclude('videoh.inc');
  659. AddInclude('video.inc');
  660. AddInclude('convert.inc',AllUnixOSes);
  661. end;
  662. T:=P.Targets.AddUnit('keyboard.pp');
  663. with T.Dependencies do
  664. begin
  665. AddInclude('keybrdh.inc');
  666. AddInclude('keyboard.inc');
  667. AddInclude('keyscan.inc');
  668. AddUnit('mouse');
  669. end;
  670. T:=P.Targets.AddUnit('sockets.pp',AllUnixOSes+AllWindowsOSes+[OS2,MorphOS,Netware,Netwlibc]);
  671. with T.Dependencies do
  672. begin
  673. AddUnit('baseunix',AllUnixOSes);
  674. AddUnit('winsock2',AllWindowsOSes);
  675. AddUnit('ctypes');
  676. AddInclude('socketsh.inc');
  677. AddInclude('filerec.inc');
  678. AddInclude('textrec.inc');
  679. AddInclude('sockovl.inc');
  680. AddInclude('sockets.inc');
  681. AddInclude('unxsockh.inc',AllUnixOSes);
  682. AddInclude('unixsock.inc',AllUnixOSes-[Solaris,Darwin]);
  683. AddInclude('fpwinsockh.inc',AllWindowsOSes);
  684. end;
  685. T:=P.Targets.AddUnit('serial.pp',AllUnixOSes);
  686. with T.Dependencies do
  687. begin
  688. AddUnit('objpas');
  689. AddUnit('termio',AllUnixOSes);
  690. AddUnit('unix',AllUnixOSes);
  691. end;
  692. {$ifndef ALLPACKAGES}
  693. Run;
  694. end;
  695. end.
  696. {$endif ALLPACKAGES}