1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 8.6.3" />
\r
7 <title>ccache installation</title>
\r
8 <style type="text/css">
\r
9 /* Sans-serif font. */
\r
10 h1, h2, h3, h4, h5, h6,
\r
11 div.title, caption.title,
\r
12 thead, p.table.header,
\r
14 span#author, span#revnumber, span#revdate, span#revremark,
\r
16 font-family: Arial,Helvetica,sans-serif;
\r
21 font-family: Georgia,"Times New Roman",Times,serif;
\r
24 /* Monospace font. */
\r
30 margin: 1em 5% 1em 5%;
\r
35 text-decoration: underline;
\r
56 h1, h2, h3, h4, h5, h6 {
\r
59 margin-bottom: 0.5em;
\r
64 border-bottom: 2px solid silver;
\r
81 border: 1px solid silver;
\r
86 margin-bottom: 0.5em;
\r
92 ul > li { color: #aaa; }
\r
93 ul > li > * { color: black; }
\r
107 span#revnumber, span#revdate, span#revremark {
\r
112 border-top: 2px solid silver;
\r
113 padding-top: 0.5em;
\r
118 padding-bottom: 0.5em;
\r
120 div#footer-badges {
\r
122 padding-bottom: 0.5em;
\r
127 margin-bottom: 1.5em;
\r
129 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
\r
130 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
\r
131 div.admonitionblock {
\r
133 margin-bottom: 1.5em;
\r
135 div.admonitionblock {
\r
137 margin-bottom: 2.0em;
\r
142 div.content { /* Block element content. */
\r
146 /* Block element titles. */
\r
147 div.title, caption.title {
\r
152 margin-bottom: 0.5em;
\r
158 td div.title:first-child {
\r
161 div.content div.title:first-child {
\r
164 div.content + div.title {
\r
168 div.sidebarblock > div.content {
\r
169 background: #ffffee;
\r
170 border: 1px solid #dddddd;
\r
171 border-left: 4px solid #f0f0f0;
\r
175 div.listingblock > div.content {
\r
176 border: 1px solid #dddddd;
\r
177 border-left: 5px solid #f0f0f0;
\r
178 background: #f8f8f8;
\r
182 div.quoteblock, div.verseblock {
\r
183 padding-left: 1.0em;
\r
184 margin-left: 1.0em;
\r
186 border-left: 5px solid #f0f0f0;
\r
190 div.quoteblock > div.attribution {
\r
191 padding-top: 0.5em;
\r
195 div.verseblock > pre.content {
\r
196 font-family: inherit;
\r
197 font-size: inherit;
\r
199 div.verseblock > div.attribution {
\r
200 padding-top: 0.75em;
\r
203 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
\r
204 div.verseblock + div.attribution {
\r
208 div.admonitionblock .icon {
\r
209 vertical-align: top;
\r
212 text-decoration: underline;
\r
214 padding-right: 0.5em;
\r
216 div.admonitionblock td.content {
\r
217 padding-left: 0.5em;
\r
218 border-left: 3px solid #dddddd;
\r
221 div.exampleblock > div.content {
\r
222 border-left: 3px solid #dddddd;
\r
223 padding-left: 0.5em;
\r
226 div.imageblock div.content { padding-left: 0; }
\r
227 span.image img { border-style: none; }
\r
228 a.image:visited { color: white; }
\r
232 margin-bottom: 0.8em;
\r
237 font-style: normal;
\r
240 dd > *:first-child {
\r
245 list-style-position: outside;
\r
248 list-style-type: decimal;
\r
251 list-style-type: lower-alpha;
\r
254 list-style-type: upper-alpha;
\r
257 list-style-type: lower-roman;
\r
260 list-style-type: upper-roman;
\r
263 div.compact ul, div.compact ol,
\r
264 div.compact p, div.compact p,
\r
265 div.compact div, div.compact div {
\r
267 margin-bottom: 0.1em;
\r
270 div.tableblock > table {
\r
271 border: 3px solid #527bbd;
\r
273 thead, p.table.header {
\r
286 /* Because the table frame attribute is overriden by CSS in most browsers. */
\r
287 div.tableblock > table[frame="void"] {
\r
288 border-style: none;
\r
290 div.tableblock > table[frame="hsides"] {
\r
291 border-left-style: none;
\r
292 border-right-style: none;
\r
294 div.tableblock > table[frame="vsides"] {
\r
295 border-top-style: none;
\r
296 border-bottom-style: none;
\r
302 margin-bottom: 0.8em;
\r
305 padding-bottom: 15px;
\r
307 dt.hdlist1.strong, td.hdlist1.strong {
\r
311 vertical-align: top;
\r
312 font-style: normal;
\r
313 padding-right: 0.8em;
\r
317 vertical-align: top;
\r
319 div.hdlist.compact tr {
\r
325 background: yellow;
\r
328 .footnote, .footnoteref {
\r
332 span.footnote, span.footnoteref {
\r
333 vertical-align: super;
\r
337 margin: 20px 0 20px 0;
\r
338 padding: 7px 0 0 0;
\r
341 #footnotes div.footnote {
\r
347 border-top: 1px solid silver;
\r
356 padding-right: 0.5em;
\r
357 padding-bottom: 0.3em;
\r
358 vertical-align: top;
\r
360 div.colist td img {
\r
365 div#footer-badges { display: none; }
\r
369 margin-bottom: 2.5em;
\r
377 margin-bottom: 0.1em;
\r
380 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
\r
398 <script type="text/javascript">
\r
400 window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
\r
401 var asciidoc = { // Namespace.
\r
403 /////////////////////////////////////////////////////////////////////
\r
404 // Table Of Contents generator
\r
405 /////////////////////////////////////////////////////////////////////
\r
407 /* Author: Mihai Bazon, September 2002
\r
408 * http://students.infoiasi.ro/~mishoo
\r
410 * Table Of Content generator
\r
413 * Feel free to use this script under the terms of the GNU General Public
\r
414 * License, as long as you do not remove or alter this notice.
\r
417 /* modified by Troy D. Hanson, September 2006. License: GPL */
\r
418 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
\r
420 // toclevels = 1..4.
\r
421 toc: function (toclevels) {
\r
423 function getText(el) {
\r
425 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
426 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
\r
428 else if (i.firstChild != null)
\r
429 text += getText(i);
\r
434 function TocEntry(el, text, toclevel) {
\r
437 this.toclevel = toclevel;
\r
440 function tocEntries(el, toclevels) {
\r
441 var result = new Array;
\r
442 var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
\r
443 // Function that scans the DOM tree for header elements (the DOM2
\r
444 // nodeIterator API would be a better technique but not supported by all
\r
446 var iterate = function (el) {
\r
447 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
448 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
\r
449 var mo = re.exec(i.tagName);
\r
450 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
\r
451 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
\r
461 var toc = document.getElementById("toc");
\r
462 var entries = tocEntries(document.getElementById("content"), toclevels);
\r
463 for (var i = 0; i < entries.length; ++i) {
\r
464 var entry = entries[i];
\r
465 if (entry.element.id == "")
\r
466 entry.element.id = "_toc_" + i;
\r
467 var a = document.createElement("a");
\r
468 a.href = "#" + entry.element.id;
\r
469 a.appendChild(document.createTextNode(entry.text));
\r
470 var div = document.createElement("div");
\r
471 div.appendChild(a);
\r
472 div.className = "toclevel" + entry.toclevel;
\r
473 toc.appendChild(div);
\r
475 if (entries.length == 0)
\r
476 toc.parentNode.removeChild(toc);
\r
480 /////////////////////////////////////////////////////////////////////
\r
481 // Footnotes generator
\r
482 /////////////////////////////////////////////////////////////////////
\r
484 /* Based on footnote generation code from:
\r
485 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
\r
488 footnotes: function () {
\r
489 var cont = document.getElementById("content");
\r
490 var noteholder = document.getElementById("footnotes");
\r
491 var spans = cont.getElementsByTagName("span");
\r
494 for (i=0; i<spans.length; i++) {
\r
495 if (spans[i].className == "footnote") {
\r
497 // Use [\s\S] in place of . so multi-line matches work.
\r
498 // Because JavaScript has no s (dotall) regex flag.
\r
499 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
\r
500 noteholder.innerHTML +=
\r
501 "<div class='footnote' id='_footnote_" + n + "'>" +
\r
502 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
\r
503 n + "</a>. " + note + "</div>";
\r
504 spans[i].innerHTML =
\r
505 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
\r
506 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
507 var id =spans[i].getAttribute("id");
\r
508 if (id != null) refs["#"+id] = n;
\r
512 noteholder.parentNode.removeChild(noteholder);
\r
514 // Process footnoterefs.
\r
515 for (i=0; i<spans.length; i++) {
\r
516 if (spans[i].className == "footnoteref") {
\r
517 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
\r
518 href = href.match(/#.*/)[0]; // Because IE return full URL.
\r
520 spans[i].innerHTML =
\r
521 "[<a href='#_footnote_" + n +
\r
522 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
532 <body class="article">
\r
534 <h1>ccache installation</h1>
\r
535 <span id="revnumber">version 3.1.6</span>
\r
537 <div id="toctitle">Table of Contents</div>
538 <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
542 <div class="sect1">
\r
543 <h2 id="_building_code_from_a_release_archive">Building code from a release archive</h2>
\r
544 <div class="sectionbody">
\r
545 <div class="sect2">
\r
546 <h3 id="_prerequisites">Prerequisites</h3>
\r
547 <div class="paragraph"><p>To build ccache, you need:</p></div>
\r
548 <div class="ulist"><ul>
\r
551 A C compiler (for instance GCC)
\r
555 <div class="paragraph"><p>It is also recommended that you have:</p></div>
\r
556 <div class="ulist"><ul>
\r
559 zlib <a href="http://www.zlib.net">http://www.zlib.net</a> (if you don’t have zlib installed, ccache will
\r
560 use a bundled copy)
\r
565 <div class="sect2">
\r
566 <h3 id="_installation">Installation</h3>
\r
567 <div class="paragraph"><p>To compile and install ccache, run these commands:</p></div>
\r
568 <div class="literalblock">
\r
569 <div class="content">
\r
570 <pre><tt>./configure
\r
572 make install</tt></pre>
\r
574 <div class="paragraph"><p>You may set the installation directory and other parameters by options to
\r
575 “./configure”. To see them, run “./configure --help”.</p></div>
\r
576 <div class="paragraph"><p>There are two ways to use ccache. You can either prefix your compilation
\r
577 commands with “ccache” or you can create a symbolic link (named as your
\r
578 compiler) to ccache. The first method is most convenient if you just want to
\r
579 try out ccache or wish to use it for some specific projects. The second method
\r
580 is most useful for when you wish to use ccache for all your compilations.</p></div>
\r
581 <div class="paragraph"><p>To install for usage by the first method just copy ccache to somewhere in your
\r
583 <div class="paragraph"><p>To install for the second method, do something like this:</p></div>
\r
584 <div class="literalblock">
\r
585 <div class="content">
\r
586 <pre><tt>cp ccache /usr/local/bin/
\r
587 ln -s ccache /usr/local/bin/gcc
\r
588 ln -s ccache /usr/local/bin/g++
\r
589 ln -s ccache /usr/local/bin/cc
\r
590 ln -s ccache /usr/local/bin/c++</tt></pre>
\r
592 <div class="paragraph"><p>And so forth. This will work as long as “/usr/local/bin” comes before the
\r
593 path to the compiler (which is usually in “/usr/bin”). After installing you
\r
594 may wish to run “which gcc” to make sure that the correct link is being used.</p></div>
\r
595 <div class="admonitionblock">
\r
598 <div class="title">Note</div>
\r
600 <td class="content">Do not use a hard link, use a symbolic link. A hard link will cause
\r
601 “interesting” problems.</td>
\r
607 <div class="sect1">
\r
608 <h2 id="_building_code_from_the_source_code_repository">Building code from the source code repository</h2>
\r
609 <div class="sectionbody">
\r
610 <div class="paragraph"><p>In addition to the prerequisites mentioned above, you also need:</p></div>
\r
611 <div class="ulist"><ul>
\r
614 AsciiDoc (<a href="http://www.methods.co.nz/asciidoc/">http://www.methods.co.nz/asciidoc/</a>) to build the documentation.
\r
619 Autoconf (<a href="http://www.gnu.org/software/autoconf/">http://www.gnu.org/software/autoconf/</a>)
\r
623 <div class="paragraph"><p>To debug and run the performance test suite you’ll also need:</p></div>
\r
624 <div class="ulist"><ul>
\r
627 Perl (<a href="http://www.perl.org/">http://www.perl.org/</a>)
\r
632 Python (<a href="http://www.python.org/">http://www.python.org/</a>)
\r
636 <div class="paragraph"><p>Run "./autogen.sh" and then follow the steps mentioned under "Installation"
\r
641 <div id="footnotes"><hr /></div>
\r
643 <div id="footer-text">
\r
644 Version 3.1.6<br />
\r
645 Last updated 2010-04-28 20:58:43 CEST
\r