jcl.inc 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. {**************************************************************************************************}
  2. { }
  3. { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");}
  4. { you may not use this file except in compliance with the License. You may obtain a copy of the }
  5. { License at http://www.mozilla.org/MPL/ }
  6. { }
  7. { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
  8. { ANY KIND, either express or implied. See the License for the specific language governing rights }
  9. { and limitations under the License. }
  10. { }
  11. { The Original Code is jcl.inc }
  12. { }
  13. { The Initial Developer of the Original Code is Marcel van Brakel. }
  14. { Portions created by Marcel van Brakel are Copyright (C) Marcel van Brakel. }
  15. { }
  16. { Contributors: }
  17. { Marcel van Brakel }
  18. { Matthias Thoma (mthoma) }
  19. { Petr Vones }
  20. { Robert Marquardt (marquardt) }
  21. { Robert Rossmair (rrossmair) }
  22. { }
  23. {**************************************************************************************************}
  24. { }
  25. { This include file defines various JCL specific defines. The more generic defines are defined in }
  26. { the jedi.inc file which is shared with the JEDI VCL. }
  27. { }
  28. {**************************************************************************************************}
  29. { }
  30. { Last modified: $Date:: $ }
  31. { Revision: $Rev:: $ }
  32. { Author: $Author:: $ }
  33. { }
  34. {**************************************************************************************************}
  35. {$BOOLEVAL OFF} // Boolean shortcut evaluation
  36. {$LONGSTRINGS ON} // Long strings
  37. {$WRITEABLECONST OFF} // Read-only typed constants
  38. {$TYPEDADDRESS OFF} // Type checked pointers off
  39. {$LOCALSYMBOLS ON} // Local symbol information
  40. {$DEFINITIONINFO ON} // Symbol definition information
  41. {$REFERENCEINFO ON} // Symbol reference information
  42. {$I jedi\jedi.inc} // Pull in the JCL/J-VCL shared directives
  43. {$IFNDEF JEDI_INC}
  44. ALERT_jedi_inc_incompatible
  45. // secure against old versions of jedi.inc.
  46. {$ENDIF ~JEDI_INC}
  47. {$IFNDEF JCLINSTALL}
  48. {$IFDEF CLR}
  49. {----------------------------}
  50. { BDS }
  51. {----------------------------}
  52. {$IFDEF BDS3}
  53. // This file should be located in directory jcl/source/include
  54. // It is automatically created by the JCL installer
  55. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  56. {$I jcld9.net.inc}
  57. {$DEFINE JCL_CONFIGURED}
  58. {$ENDIF BDS3}
  59. {----------------------------}
  60. {$IFDEF BDS4}
  61. // This file should be located in directory jcl/source/include
  62. // It is automatically created by the JCL installer
  63. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  64. {$I jcld10.net.inc}
  65. {$DEFINE JCL_CONFIGURED}
  66. {$ENDIF BDS4}
  67. {----------------------------}
  68. {$IFDEF BDS5}
  69. // This file should be located in directory jcl/source/include
  70. // It is automatically created by the JCL installer
  71. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  72. {$I jcld11.net.inc}
  73. {$DEFINE JCL_CONFIGURED}
  74. {$ENDIF BDS5}
  75. {----------------------------}
  76. {$ELSE ~CLR}
  77. {----------------------------}
  78. { C++Builder }
  79. {----------------------------}
  80. {$IFDEF BCB5}
  81. // This file should be located in directory jcl/source/include
  82. // It is automatically created by the JCL installer
  83. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  84. {$I jclc5.inc}
  85. {$DEFINE JCL_CONFIGURED}
  86. {$ENDIF BCB5}
  87. {----------------------------}
  88. {$IFDEF BCB6}
  89. // This file should be located in directory jcl/source/include
  90. // It is automatically created by the JCL installer
  91. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  92. {$I jclc6.inc}
  93. {$DEFINE JCL_CONFIGURED}
  94. {$ENDIF BCB6}
  95. {----------------------------}
  96. { Delphi }
  97. {----------------------------}
  98. {$IFDEF DELPHI5}
  99. // This file should be located in directory jcl/source/include
  100. // It is automatically created by the JCL installer
  101. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  102. {$I jcld5.inc}
  103. {$DEFINE JCL_CONFIGURED}
  104. {$ENDIF DELPIH5}
  105. {----------------------------}
  106. {$IFDEF DELPHI6}
  107. // This file should be located in directory jcl/source/include
  108. // It is automatically created by the JCL installer
  109. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  110. {$I jcld6.inc}
  111. {$DEFINE JCL_CONFIGURED}
  112. {$ENDIF DELPIH6}
  113. {----------------------------}
  114. {$IFDEF DELPHI7}
  115. // This file should be located in directory jcl/source/include
  116. // It is automatically created by the JCL installer
  117. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  118. {$I jcld7.inc}
  119. {$DEFINE JCL_CONFIGURED}
  120. {$ENDIF DELPIH7}
  121. {----------------------------}
  122. { BDS }
  123. {----------------------------}
  124. // BDS 1 and BDS 2 have the same version numbers for their native compilers
  125. // no compiler defines are used for BDS 1 and BDS 2
  126. {$IFDEF BDS1}
  127. // This file should be located in directory jcl/source/include
  128. // It is automatically created by the JCL installer
  129. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  130. //{$I jclcs1.inc}
  131. {$DEFINE JCL_CONFIGURED}
  132. {$ENDIF BDS1}
  133. {----------------------------}
  134. {$IFDEF BDS2}
  135. // This file should be located in directory jcl/source/include
  136. // It is automatically created by the JCL installer
  137. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  138. //{$I jcld8.inc}
  139. {$DEFINE JCL_CONFIGURED}
  140. {$ENDIF BDS2}
  141. {----------------------------}
  142. {$IFDEF BDS3}
  143. // This file should be located in directory jcl/source/include
  144. // It is automatically created by the JCL installer
  145. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  146. {$I jcld9.inc}
  147. {$DEFINE JCL_CONFIGURED}
  148. {$ENDIF BDS3}
  149. {----------------------------}
  150. {$IFDEF BDS4}
  151. // This file should be located in directory jcl/source/include
  152. // It is automatically created by the JCL installer
  153. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  154. {$I jcld10.inc}
  155. {$DEFINE JCL_CONFIGURED}
  156. {$ENDIF BDS4}
  157. {----------------------------}
  158. {$IFDEF BDS5}
  159. // This file should be located in directory jcl/source/include
  160. // It is automatically created by the JCL installer
  161. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  162. {$I jcld11.inc}
  163. {$DEFINE JCL_CONFIGURED}
  164. {$ENDIF BDS5}
  165. {----------------------------}
  166. {$IFDEF BDS6}
  167. // This file should be located in directory jcl/source/include
  168. // It is automatically created by the JCL installer
  169. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  170. {$I jcld12.inc}
  171. {$DEFINE JCL_CONFIGURED}
  172. {$ENDIF BDS6}
  173. {----------------------------}
  174. {$IFDEF BDS7}
  175. // This file should be located in directory jcl/source/include
  176. // It is automatically created by the JCL installer
  177. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  178. {$I jcld14.inc}
  179. {$DEFINE JCL_CONFIGURED}
  180. {$ENDIF BDS7}
  181. {----------------------------}
  182. {$IFDEF BDS8}
  183. // This file should be located in directory jcl/source/include
  184. // It is automatically created by the JCL installer
  185. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  186. {$I jcld15.inc}
  187. {$DEFINE JCL_CONFIGURED}
  188. {$ENDIF BDS8}
  189. {----------------------------}
  190. {$IFDEF BDS9}
  191. {$IFDEF MSWINDOWS}
  192. {$IFDEF CPUX86}
  193. // This file should be located in directory jcl/source/include
  194. // It is automatically created by the JCL installer
  195. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  196. {$I jcld16win32.inc}
  197. {$ENDIF CPUX86}
  198. {$IFDEF CPUX64}
  199. // This file should be located in directory jcl/source/include
  200. // It is automatically created by the JCL installer
  201. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  202. {$I jcld16win64.inc}
  203. {$ENDIF CPUX64}
  204. {$DEFINE JCL_CONFIGURED}
  205. {$ENDIF MSWINDOWS}
  206. {$ENDIF BDS9}
  207. {----------------------------}
  208. {$IFDEF BDS10}
  209. {$IFDEF MSWINDOWS}
  210. {$IFDEF CPUX86}
  211. // This file should be located in directory jcl/source/include
  212. // It is automatically created by the JCL installer
  213. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  214. {$I jcld17win32.inc}
  215. {$ENDIF CPUX86}
  216. {$IFDEF CPUX64}
  217. // This file should be located in directory jcl/source/include
  218. // It is automatically created by the JCL installer
  219. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  220. {$I jcld17win64.inc}
  221. {$ENDIF CPUX64}
  222. {$DEFINE JCL_CONFIGURED}
  223. {$ENDIF MSWINDOWS}
  224. {$ENDIF BDS10}
  225. {----------------------------}
  226. {$IFDEF BDS11}
  227. {$IFDEF MSWINDOWS}
  228. {$IFDEF CPUX86}
  229. // This file should be located in directory jcl/source/include
  230. // It is automatically created by the JCL installer
  231. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  232. {$I jcld18win32.inc}
  233. {$ENDIF CPUX86}
  234. {$IFDEF CPUX64}
  235. // This file should be located in directory jcl/source/include
  236. // It is automatically created by the JCL installer
  237. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  238. {$I jcld18win64.inc}
  239. {$ENDIF CPUX64}
  240. {$DEFINE JCL_CONFIGURED}
  241. {$ENDIF MSWINDOWS}
  242. {$ENDIF BDS11}
  243. {----------------------------}
  244. {$IFDEF BDS12}
  245. {$IFDEF MSWINDOWS}
  246. {$IFDEF CPUX86}
  247. // This file should be located in directory jcl/source/include
  248. // It is automatically created by the JCL installer
  249. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  250. {$I jcld19win32.inc}
  251. {$ENDIF CPUX86}
  252. {$IFDEF CPUX64}
  253. // This file should be located in directory jcl/source/include
  254. // It is automatically created by the JCL installer
  255. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  256. {$I jcld19win64.inc}
  257. {$ENDIF CPUX64}
  258. {$DEFINE JCL_CONFIGURED}
  259. {$ENDIF MSWINDOWS}
  260. {$ENDIF BDS12}
  261. {----------------------------}
  262. {$IFDEF BDS14}
  263. {$IFDEF MSWINDOWS}
  264. {$IFDEF CPUX86}
  265. // This file should be located in directory jcl/source/include
  266. // It is automatically created by the JCL installer
  267. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  268. {$I jcld20win32.inc}
  269. {$ENDIF CPUX86}
  270. {$IFDEF CPUX64}
  271. // This file should be located in directory jcl/source/include
  272. // It is automatically created by the JCL installer
  273. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  274. {$I jcld20win64.inc}
  275. {$ENDIF CPUX64}
  276. {$DEFINE JCL_CONFIGURED}
  277. {$ENDIF MSWINDOWS}
  278. {$ENDIF BDS14}
  279. {----------------------------}
  280. {$IFDEF BDS15}
  281. {$IFDEF MSWINDOWS}
  282. {$IFDEF CPUX86}
  283. // This file should be located in directory jcl/source/include
  284. // It is automatically created by the JCL installer
  285. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  286. {$I jcld21win32.inc}
  287. {$ENDIF CPUX86}
  288. {$IFDEF CPUX64}
  289. // This file should be located in directory jcl/source/include
  290. // It is automatically created by the JCL installer
  291. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  292. {$I jcld21win64.inc}
  293. {$ENDIF CPUX64}
  294. {$DEFINE JCL_CONFIGURED}
  295. {$ENDIF MSWINDOWS}
  296. {$ENDIF BDS15}
  297. {----------------------------}
  298. {$IFDEF BDS16}
  299. {$IFDEF MSWINDOWS}
  300. {$IFDEF CPUX86}
  301. // This file should be located in directory jcl/source/include
  302. // It is automatically created by the JCL installer
  303. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  304. {$I jcld22win32.inc}
  305. {$ENDIF CPUX86}
  306. {$IFDEF CPUX64}
  307. // This file should be located in directory jcl/source/include
  308. // It is automatically created by the JCL installer
  309. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  310. {$I jcld22win64.inc}
  311. {$ENDIF CPUX64}
  312. {$DEFINE JCL_CONFIGURED}
  313. {$ENDIF MSWINDOWS}
  314. {$ENDIF BDS16}
  315. {----------------------------}
  316. {$IFDEF BDS17}
  317. {$IFDEF MSWINDOWS}
  318. {$IFDEF CPUX86}
  319. // This file should be located in directory jcl/source/include
  320. // It is automatically created by the JCL installer
  321. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  322. {$I jcld23win32.inc}
  323. {$ENDIF CPUX86}
  324. {$IFDEF CPUX64}
  325. // This file should be located in directory jcl/source/include
  326. // It is automatically created by the JCL installer
  327. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  328. {$I jcld23win64.inc}
  329. {$ENDIF CPUX64}
  330. {$DEFINE JCL_CONFIGURED}
  331. {$ENDIF MSWINDOWS}
  332. {$ENDIF BDS17}
  333. {----------------------------}
  334. {$IFDEF BDS18}
  335. {$IFDEF MSWINDOWS}
  336. {$IFDEF CPUX86}
  337. // This file should be located in directory jcl/source/include
  338. // It is automatically created by the JCL installer
  339. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  340. {$I jcld24win32.inc}
  341. {$ENDIF CPUX86}
  342. {$IFDEF CPUX64}
  343. // This file should be located in directory jcl/source/include
  344. // It is automatically created by the JCL installer
  345. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  346. {$I jcld24win64.inc}
  347. {$ENDIF CPUX64}
  348. {$DEFINE JCL_CONFIGURED}
  349. {$ENDIF MSWINDOWS}
  350. {$ENDIF BDS18}
  351. {----------------------------}
  352. {$IFDEF BDS19}
  353. {$IFDEF MSWINDOWS}
  354. {$IFDEF CPUX86}
  355. // This file should be located in directory jcl/source/include
  356. // It is automatically created by the JCL installer
  357. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  358. {$I jcld25win32.inc}
  359. {$ENDIF CPUX86}
  360. {$IFDEF CPUX64}
  361. // This file should be located in directory jcl/source/include
  362. // It is automatically created by the JCL installer
  363. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  364. {$I jcld25win64.inc}
  365. {$ENDIF CPUX64}
  366. {$DEFINE JCL_CONFIGURED}
  367. {$ENDIF MSWINDOWS}
  368. {$ENDIF BDS19}
  369. {----------------------------}
  370. {$IFDEF BDS20}
  371. {$IFDEF MSWINDOWS}
  372. {$IFDEF CPUX86}
  373. // This file should be located in directory jcl/source/include
  374. // It is automatically created by the JCL installer
  375. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  376. {$I jcld26win32.inc}
  377. {$ENDIF CPUX86}
  378. {$IFDEF CPUX64}
  379. // This file should be located in directory jcl/source/include
  380. // It is automatically created by the JCL installer
  381. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  382. {$I jcld26win64.inc}
  383. {$ENDIF CPUX64}
  384. {$DEFINE JCL_CONFIGURED}
  385. {$ENDIF MSWINDOWS}
  386. {$ENDIF BDS20}
  387. {----------------------------}
  388. {$IFDEF BDS21}
  389. {$IFDEF MSWINDOWS}
  390. {$IFDEF CPUX86}
  391. // This file should be located in directory jcl/source/include
  392. // It is automatically created by the JCL installer
  393. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  394. {$I jcld27win32.inc}
  395. {$ENDIF CPUX86}
  396. {$IFDEF CPUX64}
  397. // This file should be located in directory jcl/source/include
  398. // It is automatically created by the JCL installer
  399. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  400. {$I jcld27win64.inc}
  401. {$ENDIF CPUX64}
  402. {$DEFINE JCL_CONFIGURED}
  403. {$ENDIF MSWINDOWS}
  404. {$ENDIF BDS21}
  405. {----------------------------}
  406. {$IFDEF BDS22}
  407. {$IFDEF MSWINDOWS}
  408. {$IFDEF CPUX86}
  409. // This file should be located in directory jcl/source/include
  410. // It is automatically created by the JCL installer
  411. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  412. {$I jcld28win32.inc}
  413. {$ENDIF CPUX86}
  414. {$IFDEF CPUX64}
  415. // This file should be located in directory jcl/source/include
  416. // It is automatically created by the JCL installer
  417. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  418. {$I jcld28win64.inc}
  419. {$ENDIF CPUX64}
  420. {$DEFINE JCL_CONFIGURED}
  421. {$ENDIF MSWINDOWS}
  422. {$ENDIF BDS22}
  423. {----------------------------}
  424. {$IFDEF BDS23}
  425. {$IFDEF MSWINDOWS}
  426. {$IFDEF CPUX86}
  427. // This file should be located in directory jcl/source/include
  428. // It is automatically created by the JCL installer
  429. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  430. {$I jcld29win32.inc}
  431. {$ENDIF CPUX86}
  432. {$IFDEF CPUX64}
  433. // This file should be located in directory jcl/source/include
  434. // It is automatically created by the JCL installer
  435. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  436. {$I jcld29win64.inc}
  437. {$ENDIF CPUX64}
  438. {$DEFINE JCL_CONFIGURED}
  439. {$ENDIF MSWINDOWS}
  440. {$ENDIF BDS23}
  441. {----------------------------}
  442. {$IFDEF BDS37}
  443. {$IFDEF MSWINDOWS}
  444. {$IFDEF CPUX86}
  445. // This file should be located in directory jcl/source/include
  446. // It is automatically created by the JCL installer
  447. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  448. {$I jcld37win32.inc}
  449. {$ENDIF CPUX86}
  450. {$IFDEF CPUX64}
  451. // This file should be located in directory jcl/source/include
  452. // It is automatically created by the JCL installer
  453. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  454. {$I jcld37win64.inc}
  455. {$ENDIF CPUX64}
  456. {$DEFINE JCL_CONFIGURED}
  457. {$ENDIF MSWINDOWS}
  458. {$ENDIF BDS37}
  459. {----------------------------}
  460. {$IFDEF FPC}
  461. // This file should be located in directory jcl/source/include
  462. // It is automatically created by the JCL installer
  463. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  464. {$I jclfpc.inc}
  465. {$DEFINE JCL_CONFIGURED}
  466. {$ENDIF FPC}
  467. {----------------------------}
  468. {$ENDIF ~CLR}
  469. // check configuration
  470. {$IFNDEF JCL_CONFIGURED}
  471. {$IFDEF SUPPORTS_COMPILETIME_MESSAGES}
  472. {$MESSAGE FATAL 'Your Delphi/BCB version is not supported by this JCL version!'}
  473. {$ELSE ~SUPPORTS_COMPILETIME_MESSAGES}
  474. 'Your Delphi/BCB version is not supported by this JCL version!'
  475. {$ENDIF ~SUPPORTS_COMPILETIME_MESSAGES}
  476. {$ENDIF !JCL_CONFIGURED}
  477. {$ENDIF ~JCLINSTALL}
  478. // Math precision selection, mutually exclusive
  479. {$IFDEF MATH_EXTENDED_PRECISION}
  480. {$UNDEF MATH_SINGLE_PRECISION}
  481. {$UNDEF MATH_DOUBLE_PRECISION}
  482. {$ENDIF}
  483. {$IFDEF MATH_DOUBLE_PRECISION}
  484. {$UNDEF MATH_SINGLE_PRECISION}
  485. {$UNDEF MATH_EXTENDED_PRECISION}
  486. {$ENDIF}
  487. {$IFDEF MATH_SINGLE_PRECISION}
  488. {$UNDEF MATH_DOUBLE_PRECISION}
  489. {$UNDEF MATH_EXTENDED_PRECISION}
  490. {$ENDIF}
  491. {$IFNDEF MATH_EXTENDED_PRECISION}
  492. {$IFNDEF MATH_DOUBLE_PRECISION}
  493. {$IFNDEF MATH_SINGLE_PRECISION}
  494. {$IFDEF FPC}
  495. {$IFDEF CPU64}
  496. {$DEFINE MATH_DOUBLE_PRECISION}
  497. {$ELSE ~CPU64}
  498. {$DEFINE MATH_EXTENDED_PRECISION}
  499. {$ENDIF ~CPU64}
  500. {$ELSE ~FPC}
  501. {$DEFINE MATH_EXTENDED_PRECISION}
  502. {$ENDIF ~FPC}
  503. {$ENDIF}
  504. {$ENDIF}
  505. {$ENDIF}
  506. {$IFDEF MATH_EXTENDED_PRECISION}
  507. {$IFDEF CPU64}
  508. {$IFDEF FPC}
  509. {$MESSAGE FATAL 'FPC does not support extended floating points on x86_64!'}
  510. {$ENDIF FPC}
  511. {$ENDIF CPU64}
  512. {$ENDIF MATH_EXTENDED_PRECISION}
  513. // PCRE options, mutually exclusive
  514. {$IFDEF PCRE_STATICLINK}
  515. {$UNDEF PCRE_LINKDLL}
  516. {$UNDEF PCRE_LINKONREQUEST}
  517. {$UNDEF PCRE_RTL}
  518. {$ENDIF PCRE_STATICLINK}
  519. {$IFDEF PCRE_LINKDLL}
  520. {$UNDEF PCRE_LINKONREQUEST}
  521. {$UNDEF PCRE_RTL}
  522. {$ENDIF PCRE_LINKDLL}
  523. {$IFDEF PCRE_LINKONREQUEST}
  524. {$UNDEF PCRE_RTL}
  525. {$ENDIF PCRE_LINKONREQUEST}
  526. {$IFNDEF PCRE_STATICLINK}
  527. {$IFNDEF PCRE_LINKDLL}
  528. {$IFNDEF PCRE_LINKONREQUEST}
  529. {$IFNDEF PCRE_RTL}
  530. {$DEFINE PCRE_LINKONREQUEST}
  531. {$ENDIF ~PCRE_RTL}
  532. {$ENDIF ~PCRE_LINKONREQUEST}
  533. {$ENDIF ~PCRE_LINKDLL}
  534. {$ENDIF ~PCRE_STATICLINK}
  535. {$IFNDEF PCRE_STATICLINK}
  536. {$IFNDEF PCRE_RTL}
  537. {$DEFINE PCRE_EXPORT_CDECL}
  538. {$ENDIF ~PCRE_RTL}
  539. {$ENDIF ~PCRE_STATICLINK}
  540. {$IFNDEF PCRE_STATICLINK}
  541. {$UNDEF PCRE_16}
  542. {$ENDIF ~PCRE_STATICLINK}
  543. {$IFNDEF PCRE_8}
  544. {$IFNDEF PCRE_16}
  545. {$DEFINE PCRE_RTL}
  546. {$UNDEF PCRE_STATICLINK}
  547. {$UNDEF PCRE_LINKDLL}
  548. {$UNDEF PCRE_LINKONREQUEST}
  549. {$ENDIF ~PCRE_16}
  550. {$ENDIF ~PCRE_8}
  551. {$IFDEF PCRE_8}
  552. {$IFDEF PCRE_16}
  553. {$IFDEF PCRE_PREFER_16}
  554. {$DEFINE JCL_PCRE_16}
  555. {$ELSE ~PCRE_PREFER_16}
  556. {$DEFINE JCL_PCRE_8}
  557. {$ENDIF ~PCRE_PREFER_16}
  558. {$ELSE ~PCRE_16}
  559. {$DEFINE JCL_PCRE_8}
  560. {$ENDIF ~PCRE_16}
  561. {$ELSE ~PCRE_8}
  562. {$IFDEF PCRE_16}
  563. {$DEFINE JCL_PCRE_16}
  564. {$ENDIF PCRE_16}
  565. {$ENDIF ~PCRE_8}
  566. {$IFDEF JCL_PCRE_8}
  567. {$DEFINE JCL_PCRE}
  568. {$ENDIF JCL_PCRE_8}
  569. {$IFDEF JCL_PCRE_16}
  570. {$DEFINE JCL_PCRE}
  571. {$ENDIF JCL_PCRE_16}
  572. // BZip2 options
  573. {$IFDEF BZIP2_STATICLINK}
  574. {$UNDEF BZIP2_LINKDLL}
  575. {$UNDEF BZIP2_LINKONREQUEST}
  576. {$ENDIF BZIP2_STATICLINK}
  577. {$IFDEF BZIP2_LINKDLL}
  578. {$UNDEF BZIP2_LINKONREQUEST}
  579. {$ENDIF BZIP2_LINKDLL}
  580. {$IFNDEF BZIP2_STATICLINK}
  581. {$IFNDEF BZIP2_LINKDLL}
  582. {$IFNDEF BZIP2_LINKONREQUEST}
  583. {$DEFINE BZIP2_STATICLINK}
  584. {$ENDIF ~BZIP2_LINKONREQUEST}
  585. {$ENDIF ~BZIP2_LINKDLL}
  586. {$ENDIF ~BZIP2_STATICLINK}
  587. {$IFDEF BZIP2_STATICLINK}
  588. {$DEFINE BZIP2_EXPORT_STDCALL}
  589. {$ENDIF BZIP2_STATICLINK}
  590. {$IFDEF BZIP2_LINKDLL}
  591. {$DEFINE BZIP2_EXPORT_CDECL}
  592. {$ENDIF BZIP2_LINKDLL}
  593. {$IFDEF BZIP2_LINKONREQUEST}
  594. {$DEFINE BZIP2_EXPORT_CDECL}
  595. {$ENDIF BZIP2_LINKONREQUEST}
  596. // ZLib options
  597. {$IFDEF ZLIB_STATICLINK}
  598. {$UNDEF ZLIB_LINKDLL}
  599. {$UNDEF ZLIB_LINKONREQUEST}
  600. {$UNDEF ZLIB_RTL}
  601. {$ENDIF ZLIB_STATICLINK}
  602. {$IFDEF ZLIB_LINKDLL}
  603. {$UNDEF ZLIB_LINKONREQUEST}
  604. {$UNDEF ZLIB_RTL}
  605. {$ENDIF ZLIB_LINKDLL}
  606. {$IFDEF ZLIB_LINKONREQUEST}
  607. {$UNDEF ZLIB_RTL}
  608. {$ENDIF ZLIB_LINKONREQUEST}
  609. {$IFNDEF ZLIB_STATICLINK}
  610. {$IFNDEF ZLIB_LINKDLL}
  611. {$IFNDEF ZLIB_LINKONREQUEST}
  612. {$IFNDEF ZLIB_RTL}
  613. {$DEFINE ZLIB_STATICLINK}
  614. {$ENDIF ~ZLIB_RTL}
  615. {$ENDIF ~ZLIB_LINKONREQUEST}
  616. {$ENDIF ~ZLIB_LINKDLL}
  617. {$ENDIF ~ZLIB_STATICLINK}
  618. {$IFDEF ZLIB_LINKDLL}
  619. {$DEFINE ZLIB_EXPORT_CDECL}
  620. {$ENDIF ZLIB_LINKDLL}
  621. {$IFDEF ZLIB_LINKONREQUEST}
  622. {$DEFINE ZLIB_EXPORT_CDECL}
  623. {$ENDIF ZLIB_LINKONREQUEST}
  624. // calling convention for static link is fastcall
  625. {$IFNDEF HAS_UNIT_CHARACTER}
  626. {$UNDEF UNICODE_RTL_DATABASE}
  627. {$ENDIF ~HAS_UNIT_CHARACTER}
  628. {$IFDEF UNICODE_RAW_DATA}
  629. {$UNDEF UNICODE_ZLIB_DATA}
  630. {$UNDEF UNICODE_BZIP2_DATA}
  631. {$ENDIF UNICODE_RAW_DATA}
  632. {$IFDEF UNICODE_ZLIB_DATA}
  633. {$UNDEF UNICODE_RAW_DATA}
  634. {$UNDEF UNICODE_BZIP2_DATA}
  635. {$ENDIF UNICODE_ZLIB_DATA}
  636. {$IFNDEF UNICODE_ZLIB_DATA}
  637. {$IFNDEF UNICODE_BZIP2_DATA}
  638. {$DEFINE UNICODE_RAW_DATA}
  639. {$ENDIF ~UNICODE_BZIP2_DATA}
  640. {$ENDIF ~UNICODE_ZLIB_DATA}
  641. {$IFDEF CONTAINER_ANSISTR}
  642. {$UNDEF CONTAINER_WIDESTR}
  643. {$UNDEF CONTAINER_UNICODESTR}
  644. {$UNDEF CONTAINER_NOSTR}
  645. {$ENDIF CONTAINER_ANSISTR}
  646. {$IFDEF CONTAINER_WIDESTR}
  647. {$UNDEF CONTAINER_UNICODESTR}
  648. {$UNDEF CONTAINER_NOSTR}
  649. {$ENDIF CONTAINER_WIDESTR}
  650. {$IFDEF CONTAINER_UNICODESTR}
  651. {$UNDEF CONTAINER_NOSTR}
  652. {$ENDIF CONTAINER_UNICODESTR}
  653. {$IFNDEF CONTAINER_ANSISTR}
  654. {$IFNDEF CONTAINER_WIDESTR}
  655. {$IFNDEF CONTAINER_UNICODESTR}
  656. {$IFNDEF CONTAINER_NOSTR}
  657. {$IFDEF SUPPORTS_UNICODE_STRING}
  658. {$DEFINE CONTAINER_UNICODESTR}
  659. {$ELSE ~SUPPORTS_UNICODE_STRING}
  660. {$DEFINE CONTAINER_ANSISTR}
  661. {$ENDIF ~SUPPORTS_UNICODE_STRING}
  662. {$ENDIF ~CONTAINER_NOSTR}
  663. {$ENDIF ~CONTAINER_UNICODESTR}
  664. {$ENDIF ~CONTAINER_WIDESTR}
  665. {$ENDIF ~CONTAINER_ANSISTR}
  666. // 7zip options
  667. {$IFDEF 7ZIP_STATICLINK}
  668. {$UNDEF 7ZIP_LINKDLL}
  669. {$UNDEF 7ZIP_LINKONREQUEST}
  670. {$ENDIF 7ZIP_STATICLINK}
  671. {$IFDEF 7ZIP_LINKDLL}
  672. {$UNDEF 7ZIP_LINKONREQUEST}
  673. {$ENDIF 7ZIP_LINKDLL}
  674. {$IFNDEF 7ZIP_STATICLINK}
  675. {$IFNDEF 7ZIP_LINKDLL}
  676. {$IFNDEF 7ZIP_LINKONREQUEST}
  677. {$DEFINE 7ZIP_LINKONREQUEST}
  678. {$ENDIF ~7ZIP_LINKONREQUEST}
  679. {$ENDIF ~7ZIP_LINKDLL}
  680. {$ENDIF ~7ZIP_STATICLINK}
  681. {$IFDEF SUPPORTS_UNSAFE_WARNINGS}
  682. {$WARN UNSAFE_TYPE OFF}
  683. {$WARN UNSAFE_CODE OFF}
  684. {$WARN UNSAFE_CAST OFF}
  685. {$ENDIF}
  686. {$IFNDEF DROP_OBSOLETE_CODE}
  687. {$IFNDEF JCLINSTALL}
  688. {$DEFINE KEEP_DEPRECATED}
  689. {$ENDIF}
  690. {$ENDIF}
  691. {$IFDEF CLR}
  692. {$WARN UNSAFE_TYPE ON}
  693. {$WARN UNSAFE_CODE ON}
  694. {$WARN UNSAFE_CAST ON}
  695. {$WARN UNIT_PLATFORM OFF}
  696. {$DEFINE MSWINDOWS}
  697. {$DEFINE PIC}
  698. {$DEFINE PUREPASCAL}
  699. {$ENDIF CLR}
  700. // Delphi 2005 has a compiler internal failure when compiling the JCL with UNITVERSIONING enabled
  701. {$IFDEF DELPHI2005}
  702. {$UNDEF UNITVERSIONING}
  703. {$ENDIF DELPHI2005}
  704. {$IFDEF FPC}
  705. {$DEFINE DEBUG_NO_TD32}
  706. {$ENDIF FPC}