fpmake.pp 23 KB

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