jcl.inc 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732
  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 FPC}
  443. // This file should be located in directory jcl/source/include
  444. // It is automatically created by the JCL installer
  445. // For manual installations, copy and adjust jcl/source/include/jcl.template.inc
  446. {$I jclfpc.inc}
  447. {$DEFINE JCL_CONFIGURED}
  448. {$ENDIF FPC}
  449. {----------------------------}
  450. {$ENDIF ~CLR}
  451. // check configuration
  452. {$IFNDEF JCL_CONFIGURED}
  453. {$IFDEF SUPPORTS_COMPILETIME_MESSAGES}
  454. {$MESSAGE FATAL 'Your Delphi/BCB version is not supported by this JCL version!'}
  455. {$ELSE ~SUPPORTS_COMPILETIME_MESSAGES}
  456. 'Your Delphi/BCB version is not supported by this JCL version!'
  457. {$ENDIF ~SUPPORTS_COMPILETIME_MESSAGES}
  458. {$ENDIF !JCL_CONFIGURED}
  459. {$ENDIF ~JCLINSTALL}
  460. // Math precision selection, mutually exclusive
  461. {$IFDEF MATH_EXTENDED_PRECISION}
  462. {$UNDEF MATH_SINGLE_PRECISION}
  463. {$UNDEF MATH_DOUBLE_PRECISION}
  464. {$ENDIF}
  465. {$IFDEF MATH_DOUBLE_PRECISION}
  466. {$UNDEF MATH_SINGLE_PRECISION}
  467. {$UNDEF MATH_EXTENDED_PRECISION}
  468. {$ENDIF}
  469. {$IFDEF MATH_SINGLE_PRECISION}
  470. {$UNDEF MATH_DOUBLE_PRECISION}
  471. {$UNDEF MATH_EXTENDED_PRECISION}
  472. {$ENDIF}
  473. {$IFNDEF MATH_EXTENDED_PRECISION}
  474. {$IFNDEF MATH_DOUBLE_PRECISION}
  475. {$IFNDEF MATH_SINGLE_PRECISION}
  476. {$IFDEF FPC}
  477. {$IFDEF CPU64}
  478. {$DEFINE MATH_DOUBLE_PRECISION}
  479. {$ELSE ~CPU64}
  480. {$DEFINE MATH_EXTENDED_PRECISION}
  481. {$ENDIF ~CPU64}
  482. {$ELSE ~FPC}
  483. {$DEFINE MATH_EXTENDED_PRECISION}
  484. {$ENDIF ~FPC}
  485. {$ENDIF}
  486. {$ENDIF}
  487. {$ENDIF}
  488. {$IFDEF MATH_EXTENDED_PRECISION}
  489. {$IFDEF CPU64}
  490. {$IFDEF FPC}
  491. {$MESSAGE FATAL 'FPC does not support extended floating points on x86_64!'}
  492. {$ENDIF FPC}
  493. {$ENDIF CPU64}
  494. {$ENDIF MATH_EXTENDED_PRECISION}
  495. // PCRE options, mutually exclusive
  496. {$IFDEF PCRE_STATICLINK}
  497. {$UNDEF PCRE_LINKDLL}
  498. {$UNDEF PCRE_LINKONREQUEST}
  499. {$UNDEF PCRE_RTL}
  500. {$ENDIF PCRE_STATICLINK}
  501. {$IFDEF PCRE_LINKDLL}
  502. {$UNDEF PCRE_LINKONREQUEST}
  503. {$UNDEF PCRE_RTL}
  504. {$ENDIF PCRE_LINKDLL}
  505. {$IFDEF PCRE_LINKONREQUEST}
  506. {$UNDEF PCRE_RTL}
  507. {$ENDIF PCRE_LINKONREQUEST}
  508. {$IFNDEF PCRE_STATICLINK}
  509. {$IFNDEF PCRE_LINKDLL}
  510. {$IFNDEF PCRE_LINKONREQUEST}
  511. {$IFNDEF PCRE_RTL}
  512. {$DEFINE PCRE_LINKONREQUEST}
  513. {$ENDIF ~PCRE_RTL}
  514. {$ENDIF ~PCRE_LINKONREQUEST}
  515. {$ENDIF ~PCRE_LINKDLL}
  516. {$ENDIF ~PCRE_STATICLINK}
  517. {$IFNDEF PCRE_STATICLINK}
  518. {$IFNDEF PCRE_RTL}
  519. {$DEFINE PCRE_EXPORT_CDECL}
  520. {$ENDIF ~PCRE_RTL}
  521. {$ENDIF ~PCRE_STATICLINK}
  522. {$IFNDEF PCRE_STATICLINK}
  523. {$UNDEF PCRE_16}
  524. {$ENDIF ~PCRE_STATICLINK}
  525. {$IFNDEF PCRE_8}
  526. {$IFNDEF PCRE_16}
  527. {$DEFINE PCRE_RTL}
  528. {$UNDEF PCRE_STATICLINK}
  529. {$UNDEF PCRE_LINKDLL}
  530. {$UNDEF PCRE_LINKONREQUEST}
  531. {$ENDIF ~PCRE_16}
  532. {$ENDIF ~PCRE_8}
  533. {$IFDEF PCRE_8}
  534. {$IFDEF PCRE_16}
  535. {$IFDEF PCRE_PREFER_16}
  536. {$DEFINE JCL_PCRE_16}
  537. {$ELSE ~PCRE_PREFER_16}
  538. {$DEFINE JCL_PCRE_8}
  539. {$ENDIF ~PCRE_PREFER_16}
  540. {$ELSE ~PCRE_16}
  541. {$DEFINE JCL_PCRE_8}
  542. {$ENDIF ~PCRE_16}
  543. {$ELSE ~PCRE_8}
  544. {$IFDEF PCRE_16}
  545. {$DEFINE JCL_PCRE_16}
  546. {$ENDIF PCRE_16}
  547. {$ENDIF ~PCRE_8}
  548. {$IFDEF JCL_PCRE_8}
  549. {$DEFINE JCL_PCRE}
  550. {$ENDIF JCL_PCRE_8}
  551. {$IFDEF JCL_PCRE_16}
  552. {$DEFINE JCL_PCRE}
  553. {$ENDIF JCL_PCRE_16}
  554. // BZip2 options
  555. {$IFDEF BZIP2_STATICLINK}
  556. {$UNDEF BZIP2_LINKDLL}
  557. {$UNDEF BZIP2_LINKONREQUEST}
  558. {$ENDIF BZIP2_STATICLINK}
  559. {$IFDEF BZIP2_LINKDLL}
  560. {$UNDEF BZIP2_LINKONREQUEST}
  561. {$ENDIF BZIP2_LINKDLL}
  562. {$IFNDEF BZIP2_STATICLINK}
  563. {$IFNDEF BZIP2_LINKDLL}
  564. {$IFNDEF BZIP2_LINKONREQUEST}
  565. {$DEFINE BZIP2_STATICLINK}
  566. {$ENDIF ~BZIP2_LINKONREQUEST}
  567. {$ENDIF ~BZIP2_LINKDLL}
  568. {$ENDIF ~BZIP2_STATICLINK}
  569. {$IFDEF BZIP2_STATICLINK}
  570. {$DEFINE BZIP2_EXPORT_STDCALL}
  571. {$ENDIF BZIP2_STATICLINK}
  572. {$IFDEF BZIP2_LINKDLL}
  573. {$DEFINE BZIP2_EXPORT_CDECL}
  574. {$ENDIF BZIP2_LINKDLL}
  575. {$IFDEF BZIP2_LINKONREQUEST}
  576. {$DEFINE BZIP2_EXPORT_CDECL}
  577. {$ENDIF BZIP2_LINKONREQUEST}
  578. // ZLib options
  579. {$IFDEF ZLIB_STATICLINK}
  580. {$UNDEF ZLIB_LINKDLL}
  581. {$UNDEF ZLIB_LINKONREQUEST}
  582. {$UNDEF ZLIB_RTL}
  583. {$ENDIF ZLIB_STATICLINK}
  584. {$IFDEF ZLIB_LINKDLL}
  585. {$UNDEF ZLIB_LINKONREQUEST}
  586. {$UNDEF ZLIB_RTL}
  587. {$ENDIF ZLIB_LINKDLL}
  588. {$IFDEF ZLIB_LINKONREQUEST}
  589. {$UNDEF ZLIB_RTL}
  590. {$ENDIF ZLIB_LINKONREQUEST}
  591. {$IFNDEF ZLIB_STATICLINK}
  592. {$IFNDEF ZLIB_LINKDLL}
  593. {$IFNDEF ZLIB_LINKONREQUEST}
  594. {$IFNDEF ZLIB_RTL}
  595. {$DEFINE ZLIB_STATICLINK}
  596. {$ENDIF ~ZLIB_RTL}
  597. {$ENDIF ~ZLIB_LINKONREQUEST}
  598. {$ENDIF ~ZLIB_LINKDLL}
  599. {$ENDIF ~ZLIB_STATICLINK}
  600. {$IFDEF ZLIB_LINKDLL}
  601. {$DEFINE ZLIB_EXPORT_CDECL}
  602. {$ENDIF ZLIB_LINKDLL}
  603. {$IFDEF ZLIB_LINKONREQUEST}
  604. {$DEFINE ZLIB_EXPORT_CDECL}
  605. {$ENDIF ZLIB_LINKONREQUEST}
  606. // calling convention for static link is fastcall
  607. {$IFNDEF HAS_UNIT_CHARACTER}
  608. {$UNDEF UNICODE_RTL_DATABASE}
  609. {$ENDIF ~HAS_UNIT_CHARACTER}
  610. {$IFDEF UNICODE_RAW_DATA}
  611. {$UNDEF UNICODE_ZLIB_DATA}
  612. {$UNDEF UNICODE_BZIP2_DATA}
  613. {$ENDIF UNICODE_RAW_DATA}
  614. {$IFDEF UNICODE_ZLIB_DATA}
  615. {$UNDEF UNICODE_RAW_DATA}
  616. {$UNDEF UNICODE_BZIP2_DATA}
  617. {$ENDIF UNICODE_ZLIB_DATA}
  618. {$IFNDEF UNICODE_ZLIB_DATA}
  619. {$IFNDEF UNICODE_BZIP2_DATA}
  620. {$DEFINE UNICODE_RAW_DATA}
  621. {$ENDIF ~UNICODE_BZIP2_DATA}
  622. {$ENDIF ~UNICODE_ZLIB_DATA}
  623. {$IFDEF CONTAINER_ANSISTR}
  624. {$UNDEF CONTAINER_WIDESTR}
  625. {$UNDEF CONTAINER_UNICODESTR}
  626. {$UNDEF CONTAINER_NOSTR}
  627. {$ENDIF CONTAINER_ANSISTR}
  628. {$IFDEF CONTAINER_WIDESTR}
  629. {$UNDEF CONTAINER_UNICODESTR}
  630. {$UNDEF CONTAINER_NOSTR}
  631. {$ENDIF CONTAINER_WIDESTR}
  632. {$IFDEF CONTAINER_UNICODESTR}
  633. {$UNDEF CONTAINER_NOSTR}
  634. {$ENDIF CONTAINER_UNICODESTR}
  635. {$IFNDEF CONTAINER_ANSISTR}
  636. {$IFNDEF CONTAINER_WIDESTR}
  637. {$IFNDEF CONTAINER_UNICODESTR}
  638. {$IFNDEF CONTAINER_NOSTR}
  639. {$IFDEF SUPPORTS_UNICODE_STRING}
  640. {$DEFINE CONTAINER_UNICODESTR}
  641. {$ELSE ~SUPPORTS_UNICODE_STRING}
  642. {$DEFINE CONTAINER_ANSISTR}
  643. {$ENDIF ~SUPPORTS_UNICODE_STRING}
  644. {$ENDIF ~CONTAINER_NOSTR}
  645. {$ENDIF ~CONTAINER_UNICODESTR}
  646. {$ENDIF ~CONTAINER_WIDESTR}
  647. {$ENDIF ~CONTAINER_ANSISTR}
  648. // 7zip options
  649. {$IFDEF 7ZIP_STATICLINK}
  650. {$UNDEF 7ZIP_LINKDLL}
  651. {$UNDEF 7ZIP_LINKONREQUEST}
  652. {$ENDIF 7ZIP_STATICLINK}
  653. {$IFDEF 7ZIP_LINKDLL}
  654. {$UNDEF 7ZIP_LINKONREQUEST}
  655. {$ENDIF 7ZIP_LINKDLL}
  656. {$IFNDEF 7ZIP_STATICLINK}
  657. {$IFNDEF 7ZIP_LINKDLL}
  658. {$IFNDEF 7ZIP_LINKONREQUEST}
  659. {$DEFINE 7ZIP_LINKONREQUEST}
  660. {$ENDIF ~7ZIP_LINKONREQUEST}
  661. {$ENDIF ~7ZIP_LINKDLL}
  662. {$ENDIF ~7ZIP_STATICLINK}
  663. {$IFDEF SUPPORTS_UNSAFE_WARNINGS}
  664. {$WARN UNSAFE_TYPE OFF}
  665. {$WARN UNSAFE_CODE OFF}
  666. {$WARN UNSAFE_CAST OFF}
  667. {$ENDIF}
  668. {$IFNDEF DROP_OBSOLETE_CODE}
  669. {$IFNDEF JCLINSTALL}
  670. {$DEFINE KEEP_DEPRECATED}
  671. {$ENDIF}
  672. {$ENDIF}
  673. {$IFDEF CLR}
  674. {$WARN UNSAFE_TYPE ON}
  675. {$WARN UNSAFE_CODE ON}
  676. {$WARN UNSAFE_CAST ON}
  677. {$WARN UNIT_PLATFORM OFF}
  678. {$DEFINE MSWINDOWS}
  679. {$DEFINE PIC}
  680. {$DEFINE PUREPASCAL}
  681. {$ENDIF CLR}
  682. // Delphi 2005 has a compiler internal failure when compiling the JCL with UNITVERSIONING enabled
  683. {$IFDEF DELPHI2005}
  684. {$UNDEF UNITVERSIONING}
  685. {$ENDIF DELPHI2005}
  686. {$IFDEF FPC}
  687. {$DEFINE DEBUG_NO_TD32}
  688. {$ENDIF FPC}