README.build.posix.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta name="generator" content=
  5. "HTML Tidy for Windows (vers 12 April 2005), see www.w3.org">
  6. <style type="text/css">
  7. body {
  8. font-family: Helvetica,sans-serif;
  9. font-size: 9pt;
  10. font-style: normal;
  11. font-weight: normal;
  12. background-color: #FFFFFF;
  13. margin-left: 54px;
  14. margin-right: 54px;
  15. margin-top: 10px;
  16. margin-bottom: 36px;
  17. padding:0px;
  18. }
  19. h1 {
  20. font-family: Helvetica, sans-serif;
  21. font-size: 16pt;
  22. font-weight: bold;
  23. font-variant: small-caps;
  24. }
  25. h2 {
  26. font-family: Helvetica, sans-serif;
  27. font-size: 14pt;
  28. font-weight: bold;
  29. color: #000000;
  30. }
  31. h3 {
  32. font-family: Helvetica, sans-serif;
  33. font-size: 12pt;
  34. font-weight: bold;
  35. color: #000000;
  36. }
  37. h4 {
  38. font-family: Helvetica, sans-serif;
  39. font-size: 10pt;
  40. font-weight: bold;
  41. color: #000000;
  42. }
  43. h5 {
  44. font-family: Helvetica, sans-serif;
  45. font-size: 9pt;
  46. font-weight: bold;
  47. font-style: italic;
  48. color: #000000;
  49. }
  50. p {
  51. font-family: Helvetica,sans-serif;
  52. font-size: 10pt;
  53. font-style: normal;
  54. font-weight: normal;
  55. padding-left: 0%;
  56. }
  57. pre {
  58. padding: 1em;
  59. border: 1px dashed #2f6fab;
  60. color: black;
  61. background-color: #f9f9f9;
  62. line-height: 1.1em;
  63. }
  64. p.caption {
  65. font-weight: bold;
  66. color: black;
  67. padding-top: 0px;
  68. padding-bottom: 12px;
  69. }
  70. div {
  71. font-family: Helvetica,sans-serif;
  72. font-size: 9pt;
  73. font-style: normal;
  74. font-weight: normal;
  75. padding-left: 7%;
  76. padding-right: 5%;
  77. }
  78. b{
  79. font-family: Helvetica, sans-serif;
  80. font-size: 9pt;
  81. font-weight: bold;
  82. }
  83. table {
  84. cellpadding: 0;
  85. cellspacing: 0;
  86. }
  87. table.fbtable {
  88. font-size: 10pt;
  89. border-width: 1px 1px 1px 1px;
  90. border-spacing: 2px;
  91. border-style: outset outset outset outset;
  92. border-color: gray gray gray gray;
  93. border-collapse: separate;
  94. background-color: white;
  95. }
  96. table.fbtable th {
  97. border-width: 1px 1px 1px 1px;
  98. padding: 1px 1px 1px 1px;
  99. border-style: inset inset inset inset;
  100. border-color: gray gray gray gray;
  101. background-color: white;
  102. -moz-border-radius: 0px 0px 0px 0px;
  103. }
  104. table.fbtable td {
  105. border-width: 1px 1px 1px 1px;
  106. padding: 1px 1px 1px 1px;
  107. border-style: inset inset inset inset;
  108. border-color: gray gray gray gray;
  109. background-color: white;
  110. -moz-border-radius: 0px 0px 0px 0px;
  111. }
  112. table.fbtable td.code {
  113. font-size: 10pt;
  114. font-family: Courier New,monospace;
  115. color: black;
  116. }
  117. table.platform_table caption {
  118. margin-left: 2px;
  119. margin-right: 2px;
  120. padding: 1px;
  121. font-weight: bold;
  122. background-color: #dee2ff;
  123. text-align: left;
  124. }
  125. table.platform_table tr.works td {
  126. background-color: lightgreen;
  127. border: 1px solid gray;
  128. }
  129. table.platform_table tr.broken td {
  130. background-color: darkred;
  131. border: 1px solid gray;
  132. padding: 1px;
  133. }
  134. table.platform_table tr.rarely td {
  135. background-color: lightyellow;
  136. border: 1px solid gray;
  137. padding: 1px;
  138. font-style: italic;
  139. }
  140. td.left {
  141. text-align: left;
  142. font-size: 9pt;
  143. width: 33%;
  144. padding-top: 10px;
  145. padding-bottom: 10px;}
  146. td.center {
  147. text-align: center;
  148. font-size: 9pt;
  149. width: 33%;
  150. padding-top: 10px;
  151. padding-bottom: 10px;
  152. }
  153. td.right {
  154. text-align: right;
  155. font-size: 9pt;
  156. width: 33%;
  157. padding-top: 10px;
  158. padding-bottom: 10px;
  159. }
  160. </style>
  161. <title></title>
  162. </head>
  163. <body>
  164. <h1>
  165. <a name="intro" id="intro">1.0 Introduction</a>
  166. </h1>
  167. <p>
  168. Firebird builds on many POSIX compatible Unix and Linux platforms.
  169. This document describes the process for building on these systems
  170. and lists the supported configurations - including compiler
  171. revision and OS level for best results.
  172. </p>
  173. <h1>
  174. <a name="contents" id="contents">2.0 Contents</a>
  175. </h1><a href="#intro">Introduction</a><br>
  176. <a href="#contents">Contents</a><br>
  177. <a href="#preparing">Preparing to Build Firebird</a><br>
  178. <ul>
  179. <li>
  180. <a href="#configure1">Generating a configure file with
  181. autogen.sh</a>
  182. </li>
  183. <li>
  184. <a href="#configure2">Running configure</a>
  185. </li>
  186. </ul><a href="#supported">Supported Platforms</a>
  187. <ul>
  188. <li>
  189. <a href="#aix1">AIX 6.1, Power</a>
  190. </li>
  191. <li>
  192. <a href="#hp1">HP-UX 11i v3, Itanium</a>
  193. </li>
  194. <li>
  195. <a href="#hp2">HP-UX 11i v3, PA-RISC</a>
  196. </li>
  197. <li>
  198. <a href="#linux1">64-bit Linux</a>
  199. </li>
  200. <li>
  201. <a href="#linux2">32-bit Linux</a>
  202. </li>
  203. <li>
  204. <a href="#sol1">Solaris 10, Sparc</a>
  205. </li>
  206. <li>
  207. <a href="#sol2">Solaris 10, Intel</a>
  208. </li>
  209. <li>
  210. <a href="#freebsd">FreeBSD</a>
  211. </li>
  212. </ul>
  213. <h1>
  214. <a name="preparing" id="preparing">3.0 Preparing to Build
  215. Firebird</a>
  216. </h1>
  217. <h2>
  218. <a name="configure1" id="configure1">3.1 Generating a configure
  219. file with autogen.sh</a>
  220. </h2>
  221. <p>
  222. Before building Firebird it is necessary to create the "configure"
  223. script, if one is not included with your distribution. The configure
  224. script is generated by running the "autogen.sh" script. Autogen.sh
  225. is a shell script located in the root directory of the Firebird
  226. build.
  227. </p>
  228. <p>
  229. Autogen.sh depends on the GNU autotools to create "configure".
  230. Modern LINUX distributions will already have the GNU autotools
  231. installed, but if you are attempting to build on
  232. AIX, HP-UX, or Solaris, you may need to install the
  233. necessary GNU utilities.
  234. </p>
  235. <p>
  236. The table below shows the versions of the GNU tools that we use to
  237. build Firebird 2.5 on the different POSIX hosts. We take measures
  238. to make configure buildable with as wide range of autotools as
  239. possible, but we can't check all possible combinations.
  240. </p>
  241. <table class="Fbtable">
  242. <tr>
  243. <th>
  244. GNU Tool
  245. </th>
  246. <th>
  247. Recommended Version
  248. </th>
  249. <th>
  250. Notes
  251. </th>
  252. </tr>
  253. <tr>
  254. <td>
  255. m4
  256. </td>
  257. <td>
  258. 1.4.12
  259. </td>
  260. <td>
  261. autoconf and libtool depend on m4
  262. </td>
  263. </tr>
  264. <tr>
  265. <td>
  266. gmake
  267. </td>
  268. <td>
  269. 3.81
  270. </td>
  271. <td>
  272. 3.80 tested ok, too
  273. </td>
  274. </tr>
  275. <tr>
  276. <td>
  277. autoconf
  278. </td>
  279. <td>
  280. 2.63
  281. </td>
  282. <td>
  283. 2.56 is minimum version per configure.in file
  284. </td>
  285. </tr>
  286. <tr>
  287. <td>
  288. automake
  289. </td>
  290. <td>
  291. 1.10.1
  292. </td>
  293. <td>
  294. 1.10.2 tested ok, too
  295. </td>
  296. </tr>
  297. <tr>
  298. <td>
  299. libtool
  300. </td>
  301. <td>
  302. 2.2.6a
  303. </td>
  304. <td>
  305. 1.5.26 tested ok, too
  306. </td>
  307. </tr>
  308. </table>
  309. <p class="caption">
  310. Recommended Version(s) of GNU Tool Chain Utilities
  311. </p>
  312. <pre>
  313. ./autogen.sh --with-system-editline=yes --with-system-icu --enable-debug
  314. </pre>
  315. <p class="caption">
  316. Sample invocation of autogen with configure options
  317. </p>
  318. <p>
  319. Tip! It is possible to pass the configure options directly to
  320. autogen, as shown in the example above.
  321. </p>
  322. <h2>
  323. <a name="configure2" id="configure2">3.2 Running configure</a>
  324. </h2>
  325. <p>
  326. Once the "configure" script is generated, it can be run repeatedly
  327. without re-running the autogen.sh script. This allows the user to
  328. retest with different configuration options.
  329. </p>
  330. <table class="fbtable">
  331. <tr>
  332. <th>
  333. Configure Option
  334. </th>
  335. <th>
  336. Description
  337. </th>
  338. <th>
  339. Default Value
  340. </th>
  341. </tr>
  342. <tr>
  343. <td class="code">
  344. --enable-debug
  345. </td>
  346. <td>
  347. Build debug version
  348. </td>
  349. <td class="code">
  350. no
  351. </td>
  352. </tr>
  353. <tr>
  354. <td class="code">
  355. --enable-raw-devices
  356. </td>
  357. <td>
  358. Enable databases on raw devices
  359. </td>
  360. <td class="code">
  361. yes
  362. </td>
  363. </tr>
  364. <tr>
  365. <td class="code">
  366. --enable-superserver
  367. </td>
  368. <td>
  369. Build SuperServer architecture
  370. </td>
  371. <td class="code">
  372. no
  373. </td>
  374. </tr>
  375. <tr>
  376. <td class="code">
  377. --prefix
  378. </td>
  379. <td>
  380. Installation location
  381. </td>
  382. <td class="code">
  383. /usr/local/firebird
  384. </td>
  385. </tr>
  386. <tr>
  387. <td class="code">
  388. --with-editline
  389. </td>
  390. <td>
  391. Advanced editing and command retrieval for ISQL
  392. </td>
  393. <td class="code">
  394. no
  395. </td>
  396. </tr>
  397. <tr>
  398. <td class="code">
  399. --with-ipc-name
  400. </td>
  401. <td>
  402. Specify local IPC name
  403. </td>
  404. <td class="code">
  405. FirebirdIPI
  406. </td>
  407. </tr>
  408. <tr>
  409. <td class="code">
  410. --with-system-editline
  411. </td>
  412. <td>
  413. Use system version of editline, instead of bundled version
  414. of ICU
  415. </td>
  416. <td class="code">
  417. no
  418. </td>
  419. </tr>
  420. <tr>
  421. <td class="code">
  422. --with-system-icu
  423. </td>
  424. <td>
  425. Use system version of ICU, instead of bundled version of
  426. ICU
  427. </td>
  428. <td class="code">
  429. no
  430. </td>
  431. </tr>
  432. <tr>
  433. <td class="code">
  434. --with-service-name
  435. </td>
  436. <td>
  437. Specify inet service name
  438. </td>
  439. <td class="code">
  440. gds_db
  441. </td>
  442. </tr>
  443. <tr>
  444. <td class="code">
  445. --with-service-port
  446. </td>
  447. <td>
  448. Specify inet service port
  449. </td>
  450. <td class="code">
  451. 3050
  452. </td>
  453. </tr>
  454. <tr>
  455. <td class="code">
  456. --with-gpre-ada
  457. </td>
  458. <td>
  459. Support ADA in gpre
  460. </td>
  461. <td class="code">
  462. no
  463. </td>
  464. </tr>
  465. <tr>
  466. <td class="code">
  467. --with-gpre-cobol
  468. </td>
  469. <td>
  470. Support COBOL in gpre
  471. </td>
  472. <td class="code">
  473. no
  474. </td>
  475. </tr>
  476. <tr>
  477. <td class="code">
  478. --with-gpre-fortran
  479. </td>
  480. <td>
  481. Support FORTRAN in gpre
  482. </td>
  483. <td class="code">
  484. no
  485. </td>
  486. </tr>
  487. <tr>
  488. <td class="code">
  489. --with-gpre-pascal
  490. </td>
  491. <td>
  492. Support PASCAL in gpre
  493. </td>
  494. <td class="code">
  495. no
  496. </td>
  497. </tr>
  498. </table>
  499. <p class="caption">
  500. Firebird Configure Options
  501. </p>
  502. <h1>
  503. <a name="supported" id="supported">4.0 Supported Platforms</a>
  504. </h1>
  505. <p>
  506. This section lists platforms, compilers, and compiler options where
  507. Firebird has been successfully tested. Optional flags for
  508. enthusiasts are provided.
  509. </p>
  510. <p>
  511. When Autoconf environment variables are provided, you must export
  512. these before running configure.
  513. </p>
  514. <p>
  515. Unless otherwise noted, all builds are 64-bit.
  516. </p>
  517. <table class="platform_table" summary=
  518. "ICU can be built on many platforms.">
  519. <caption>
  520. Firebird POSIX platforms
  521. </caption>
  522. <tr class="works">
  523. <td>
  524. AIX 6.1, Power
  525. </td>
  526. <td>
  527. XL C++ Compiler, 10.1
  528. </td>
  529. <td class="works">
  530. Frequently Tested
  531. </td>
  532. </tr>
  533. <tr class="rarely">
  534. <td>
  535. AIX 5.3, Power
  536. </td>
  537. <td>
  538. XL C++ Compiler, 10.1
  539. </td>
  540. <td>
  541. Rarely Tested
  542. </td>
  543. </tr>
  544. <tr class="works">
  545. <td>
  546. HP-UX 11.31 (11i v3), Itanium
  547. </td>
  548. <td>
  549. aCC C++ Compiler 6.23
  550. </td>
  551. <td class="works">
  552. Frequently Tested
  553. </td>
  554. </tr>
  555. <tr class="works">
  556. <td>
  557. HP-UX 11.31 (11i v3), PA-RISC
  558. </td>
  559. <td>
  560. aCC C++ Compiler 3.85
  561. </td>
  562. <td class="works">
  563. Frequently Tested
  564. </td>
  565. </tr>
  566. <tr class="rarely">
  567. <td>
  568. HP-UX 11.23 (11i v2), Itanium
  569. </td>
  570. <td>
  571. aCC C++ Compiler 6.23
  572. </td>
  573. <td>
  574. Rarely Tested
  575. </td>
  576. </tr>
  577. <tr class="rarely">
  578. <td>
  579. HP-UX 11.23 (11i v2), PA-RISC
  580. </td>
  581. <td>
  582. aCC C++ Compiler 3.85
  583. </td>
  584. <td>
  585. Rarely Tested
  586. </td>
  587. </tr>
  588. <tr class="works">
  589. <td>
  590. Linux, Red Hat Enterprise 5.3, AMD64
  591. </td>
  592. <td>
  593. g++ 4.3.3
  594. </td>
  595. <td>
  596. Frequently Tested
  597. </td>
  598. </tr>
  599. <tr class="works">
  600. <td>
  601. Linux, Open SUSE 11.0, AMD64
  602. </td>
  603. <td>
  604. g++ 4.3.3
  605. </td>
  606. <td>
  607. Frequently Tested
  608. </td>
  609. </tr>
  610. <tr class="works">
  611. <td>
  612. Linux, Open SUSE 10.2, AMD64
  613. </td>
  614. <td>
  615. g++ 4.3.3
  616. </td>
  617. <td>
  618. Frequently Tested
  619. </td>
  620. </tr>
  621. <tr class="works">
  622. <td>
  623. Solaris 10, SPARC
  624. </td>
  625. <td>
  626. Sun Studio 12, Update 1
  627. </td>
  628. <td>
  629. Frequently Tested
  630. </td>
  631. </tr>
  632. <tr class="rarely">
  633. <td>
  634. Solaris 9 SPARC
  635. </td>
  636. <td>
  637. Sun Studio 12
  638. </td>
  639. <td>
  640. Rarely Tested
  641. </td>
  642. </tr>
  643. <tr class="works">
  644. <td>
  645. Solaris 10, AMD64
  646. </td>
  647. <td>
  648. Sun Studio 12, Update 1
  649. </td>
  650. <td class="works">
  651. Frequently Tested
  652. </td>
  653. </tr>
  654. <tr class="rarely">
  655. <td>
  656. FreeBSD 8, AMD64/i386
  657. </td>
  658. <td>
  659. g++ 4.2.1
  660. </td>
  661. <td>
  662. Rarely Tested
  663. </td>
  664. </tr>
  665. </table>
  666. <h2>
  667. <a name="aix1" id="aix1">4.1 AIX 6.1 on Power, IBM XL C++</a>
  668. </h2>
  669. <pre>
  670. export CC=cc_r
  671. export CXX=xlC_r
  672. export CFLAGS=-q64
  673. export CXXFLAGS=-q64
  674. </pre>
  675. <p class="caption">
  676. Autoconf Environment Variables for AIX
  677. </p>
  678. <p>
  679. This configuration was also successfully tested against AIX 5.3.
  680. </p>
  681. <p>
  682. Compiler version was XL C++ compiler, version 10.1.
  683. </p>
  684. <h2>
  685. <a name="hp1" id="hp1">4.2 HP-UX 11i v3 on Itanium, HP aCC C++
  686. Compiler</a>
  687. </h2>
  688. <pre>
  689. export CC=cc
  690. export CXX=aCC
  691. export CFLAGS=+DD64
  692. export CXXFLAGS=+DD64
  693. </pre>
  694. <p class="caption">
  695. Autoconf Environment Variables for HP-UX 11i v3, Itanium
  696. </p>
  697. <P>
  698. Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
  699. released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
  700. </P>
  701. <P>
  702. The Firebird build process requires HP linker (ld) option
  703. "-concatrpath." -concatrpath is provided in the June 2007 patch bundle.
  704. This update is available for HP-UX 11i v2 and v3.
  705. </p>
  706. <p>
  707. Compiler version was HP ANSI C++ A.06.23.
  708. </p>
  709. <p>
  710. The default instruction set architecture for HP-UX Itanium is
  711. blended. Enthusiasts may add +DSnative to the CFLAGS/CXXFLAGS,
  712. which tunes for the processor on which the compiler is running.
  713. </p>
  714. <h2>
  715. <a name="hp2" id="hp2">4.3 HP-UX 11i v3 on PA-RISC, HP aCC C++
  716. Compiler</a>
  717. </h2>
  718. <pre>
  719. export CC=cc
  720. export CXX=aCC
  721. export CFLAGS=+DD64
  722. export CXXFLAGS=+DD64
  723. </pre>
  724. <p class="caption">
  725. Autoconf Environment Variables for HP-UX 11i v3, PA-RISC
  726. </p>
  727. <P>
  728. Firebird requires the HP-UX Atomic APIs ("AtomicAPI" bundle),
  729. released as an optional Software Pack (SPK) for HP-UX 11i v2 or v3.
  730. </P>
  731. <P>
  732. The Firebird build process requires HP linker (ld) option
  733. "-concatrpath." -concatrpath is provided in the June 2007 patch bundle.
  734. This update is available for HP-UX 11i v2 and v3.
  735. </p>
  736. <p>
  737. Compiler version was HP ANSI C++ A.03.85. <b><i>Note, A.03.85 is
  738. the latest and last release of the aCC compiler on PA-RISC</i></b>.
  739. </p>
  740. <p>
  741. This configuration was also successfully tested using HP-UX 11iv2.
  742. </p>
  743. <h2>
  744. <a name="linux1" id="linux1">4.4 Linux on 64-bit AMD64, GNU C++
  745. compiler (g++)</a>
  746. </h2>
  747. <p>
  748. g++ 4.3.3 is reference compiler for Firebird 2.5.
  749. </p>
  750. <p>
  751. Firebird 2.5 has been tested on the following distributions:
  752. </p>
  753. <ul>
  754. <li>Open SUSE 11.0
  755. </li>
  756. <li>Open SUSE 10.2
  757. </li>
  758. <li>Red Hat Enterprise 5.3
  759. </li>
  760. <li>Debian
  761. </li>
  762. </ul>
  763. <p>
  764. No Autoconf Environment variables are required to build on 64-bit
  765. Linux when using g++.
  766. </p>
  767. <h2>
  768. <a name="linux2" id="linux2">4.5 Linux on 32-bit i386, GNU C++
  769. compiler (g++)</a>
  770. </h2>
  771. <p>
  772. g++ 4.3.3 is reference compiler for Firebird 2.5.
  773. </p>
  774. <p>
  775. No Autoconf Environment variables are required to build on 32-bit
  776. Linux when using g++.
  777. </p>
  778. <h2>
  779. <a name="sol1" id="sol1">4.6 Solaris 10 on SPARC, Sun Studio 12
  780. Update 1</a>
  781. </h2>
  782. <pre>
  783. export CC=cc
  784. export CXX=CC
  785. export CFLAGS="-m64"
  786. export CXXFLAGS="-m64"
  787. </pre>
  788. <p class="caption">
  789. Autoconf Environment Variables for Solaris 10, SPARC
  790. </p>
  791. <p>
  792. This configuration was also tested on Solaris 9, SPARC, using Sun
  793. Studio 12.
  794. </p>
  795. <p>
  796. The default instruction set architecture for Solaris SPARC is
  797. generic (-xarch=generic). Enthusiasts may add -xarch=native to the CFLAGS/CXXFLAGS,
  798. which tunes for the processor on which the compiler is running.
  799. </p>
  800. <p>
  801. <b>Note!</b> Sun Studio 12 is the last Sun Studio release to
  802. support Solaris 9. Sun Studio "Update 1" requires Solaris 10 or
  803. greater.
  804. </p>
  805. <h2>
  806. <a name="sol2" id="sol2">4.7 Solaris 10 on AMD64, Sun Studio 12
  807. Update 1</a>
  808. </h2>
  809. <pre>
  810. export CC=cc
  811. export CXX=CC
  812. export CFLAGS="-m64"
  813. export CXXFLAGS="-m64"
  814. </pre>
  815. <p class="caption">
  816. Autoconf Environment Variables Solaris 10, AMD64
  817. </p>
  818. <p>
  819. Firebird requires Solaris 10 or later when using Sun Studio on
  820. Solaris AMD64. Solaris 9 is not supported on AMD64.
  821. </p>
  822. <p>
  823. The default instruction set architecture for Solaris on AMD64 is
  824. generic (-xarch=generic). Enthusiasts may add -xarch=native to the CFLAGS/CXXFLAGS,
  825. which tunes for the processor on which the compiler is running.
  826. </p>
  827. <h2>
  828. <a name="freebsd" id="freebsd">4.8 FreeBSD, g++</a>
  829. </h2>
  830. <p>
  831. Firebird runs on freebsd, but not too efficient - that OS is missing support of
  832. futex in shared memory. Therefore SystemV semaphores are used, which is not too efficient.
  833. To build and run firebird you should tune kernel. The following IPC settings are known to work OK:
  834. </p>
  835. <pre>
  836. # ipcs -S
  837. seminfo:
  838. semmap: 1024(# of entries in semaphore map)
  839. semmni: 1024(# of semaphore identifiers)
  840. semmns: 2048(# of semaphores in system)
  841. semmnu: 128(# of undo structures in system)
  842. semmsl: 1024(max # of semaphores per id)
  843. semopm: 100(max # of operations per semop call)
  844. semume: 10(max # of undo entries per process)
  845. semusz: 152(size in bytes of undo structure)
  846. semvmx: 32767(semaphore maximum value)
  847. semaem: 16384(adjust on exit max value)
  848. </pre>
  849. <p>
  850. Please pass the following parameter to autogen.sh or configure: <br>
  851. --with-system-editline <br>
  852. or: <br>
  853. --without-editline (this will break command line editing in isql) <br>
  854. Builtin library does not compile on FreeBSD!
  855. </p>
  856. <h1>
  857. <a name="testing" id="testing">5.0 Testing in Place</a>
  858. </h1>
  859. <p>
  860. Firebird is using current (one being built) engine to complete
  861. build, therefore successfully finished build is somewhat tested,
  862. but it does not provide a "make check" option. This may be added in
  863. a future release.
  864. </p>
  865. <p>
  866. After the build has finished, you may prepare your build in-place,
  867. and run regession tests deploying it.
  868. </p>
  869. <p>
  870. To prepare you build for "in-place" testing, you need to execute
  871. the following commands. This assumes that Firebird was downloaded
  872. and built in the /u/fbtest/firebird2h1 directory:
  873. </p>
  874. <pre>
  875. cd /u/fbtest/firebird2h1/gen/firebird
  876. export FIREBIRD=/u/fbtest/firebird2h1/gen/firebird
  877. export PATH=$FIREBIRD/bin:$PATH
  878. cp misc/firebird.conf .
  879. cp misc/fbintl.conf intl
  880. cp intl/libfbintl.so lib/fbintl.so
  881. export LD_LIBRARY_PATH=$FIREBIRD/lib
  882. </pre>
  883. <p class="caption">
  884. Commands for In Place Testing of Firebird
  885. </p>
  886. <p>
  887. <b>Note!</b> You may also need to edit the firebird.conf file and
  888. change <code>RemoteFileOpenAbility=1</code> if you are testing on
  889. an NFS drive. <b><i>PLEASE do NOT use this option in production
  890. unless you really understand what are you doing!!!</i></b>
  891. </p>
  892. <p>
  893. At this point you can run regression tests using ISQL client.
  894. </p>
  895. <h1>
  896. <a name="deploying" id="deploying">6.0 Deploying</a>
  897. </h1>
  898. <p>
  899. The hard work is done. To install, just type
  900. </p>
  901. <pre>
  902. make install
  903. </pre>
  904. </body>
  905. </html>