resetting manifest requested domain to floor
[platform/upstream/ccache.git] / INSTALL.html
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
4 <head>\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
13 div#toctitle,\r
14 span#author, span#revnumber, span#revdate, span#revremark,\r
15 div#footer {\r
16   font-family: Arial,Helvetica,sans-serif;\r
17 }\r
18 \r
19 /* Serif font. */\r
20 div.sectionbody {\r
21   font-family: Georgia,"Times New Roman",Times,serif;\r
22 }\r
23 \r
24 /* Monospace font. */\r
25 tt {\r
26   font-size: inherit;\r
27 }\r
28 \r
29 body {\r
30   margin: 1em 5% 1em 5%;\r
31 }\r
32 \r
33 a {\r
34   color: blue;\r
35   text-decoration: underline;\r
36 }\r
37 a:visited {\r
38   color: fuchsia;\r
39 }\r
40 \r
41 em {\r
42   font-style: italic;\r
43   color: navy;\r
44 }\r
45 \r
46 strong {\r
47   font-weight: bold;\r
48   color: #083194;\r
49 }\r
50 \r
51 tt {\r
52   font-size: inherit;\r
53   color: navy;\r
54 }\r
55 \r
56 h1, h2, h3, h4, h5, h6 {\r
57   color: #527bbd;\r
58   margin-top: 1.2em;\r
59   margin-bottom: 0.5em;\r
60   line-height: 1.3;\r
61 }\r
62 \r
63 h1, h2, h3 {\r
64   border-bottom: 2px solid silver;\r
65 }\r
66 h2 {\r
67   padding-top: 0.5em;\r
68 }\r
69 h3 {\r
70   float: left;\r
71 }\r
72 h3 + * {\r
73   clear: left;\r
74 }\r
75 \r
76 div.sectionbody {\r
77   margin-left: 0;\r
78 }\r
79 \r
80 hr {\r
81   border: 1px solid silver;\r
82 }\r
83 \r
84 p {\r
85   margin-top: 0.5em;\r
86   margin-bottom: 0.5em;\r
87 }\r
88 \r
89 ul, ol, li > p {\r
90   margin-top: 0;\r
91 }\r
92 ul > li     { color: #aaa; }\r
93 ul > li > * { color: black; }\r
94 \r
95 pre {\r
96   padding: 0;\r
97   margin: 0;\r
98 }\r
99 \r
100 span#author {\r
101   color: #527bbd;\r
102   font-weight: bold;\r
103   font-size: 1.1em;\r
104 }\r
105 span#email {\r
106 }\r
107 span#revnumber, span#revdate, span#revremark {\r
108 }\r
109 \r
110 div#footer {\r
111   font-size: small;\r
112   border-top: 2px solid silver;\r
113   padding-top: 0.5em;\r
114   margin-top: 4.0em;\r
115 }\r
116 div#footer-text {\r
117   float: left;\r
118   padding-bottom: 0.5em;\r
119 }\r
120 div#footer-badges {\r
121   float: right;\r
122   padding-bottom: 0.5em;\r
123 }\r
124 \r
125 div#preamble {\r
126   margin-top: 1.5em;\r
127   margin-bottom: 1.5em;\r
128 }\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
132   margin-top: 1.0em;\r
133   margin-bottom: 1.5em;\r
134 }\r
135 div.admonitionblock {\r
136   margin-top: 2.0em;\r
137   margin-bottom: 2.0em;\r
138   margin-right: 10%;\r
139   color: #606060;\r
140 }\r
141 \r
142 div.content { /* Block element content. */\r
143   padding: 0;\r
144 }\r
145 \r
146 /* Block element titles. */\r
147 div.title, caption.title {\r
148   color: #527bbd;\r
149   font-weight: bold;\r
150   text-align: left;\r
151   margin-top: 1.0em;\r
152   margin-bottom: 0.5em;\r
153 }\r
154 div.title + * {\r
155   margin-top: 0;\r
156 }\r
157 \r
158 td div.title:first-child {\r
159   margin-top: 0.0em;\r
160 }\r
161 div.content div.title:first-child {\r
162   margin-top: 0.0em;\r
163 }\r
164 div.content + div.title {\r
165   margin-top: 0.0em;\r
166 }\r
167 \r
168 div.sidebarblock > div.content {\r
169   background: #ffffee;\r
170   border: 1px solid #dddddd;\r
171   border-left: 4px solid #f0f0f0;\r
172   padding: 0.5em;\r
173 }\r
174 \r
175 div.listingblock > div.content {\r
176   border: 1px solid #dddddd;\r
177   border-left: 5px solid #f0f0f0;\r
178   background: #f8f8f8;\r
179   padding: 0.5em;\r
180 }\r
181 \r
182 div.quoteblock, div.verseblock {\r
183   padding-left: 1.0em;\r
184   margin-left: 1.0em;\r
185   margin-right: 10%;\r
186   border-left: 5px solid #f0f0f0;\r
187   color: #777777;\r
188 }\r
189 \r
190 div.quoteblock > div.attribution {\r
191   padding-top: 0.5em;\r
192   text-align: right;\r
193 }\r
194 \r
195 div.verseblock > pre.content {\r
196   font-family: inherit;\r
197   font-size: inherit;\r
198 }\r
199 div.verseblock > div.attribution {\r
200   padding-top: 0.75em;\r
201   text-align: left;\r
202 }\r
203 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
204 div.verseblock + div.attribution {\r
205   text-align: left;\r
206 }\r
207 \r
208 div.admonitionblock .icon {\r
209   vertical-align: top;\r
210   font-size: 1.1em;\r
211   font-weight: bold;\r
212   text-decoration: underline;\r
213   color: #527bbd;\r
214   padding-right: 0.5em;\r
215 }\r
216 div.admonitionblock td.content {\r
217   padding-left: 0.5em;\r
218   border-left: 3px solid #dddddd;\r
219 }\r
220 \r
221 div.exampleblock > div.content {\r
222   border-left: 3px solid #dddddd;\r
223   padding-left: 0.5em;\r
224 }\r
225 \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
229 \r
230 dl {\r
231   margin-top: 0.8em;\r
232   margin-bottom: 0.8em;\r
233 }\r
234 dt {\r
235   margin-top: 0.5em;\r
236   margin-bottom: 0;\r
237   font-style: normal;\r
238   color: navy;\r
239 }\r
240 dd > *:first-child {\r
241   margin-top: 0.1em;\r
242 }\r
243 \r
244 ul, ol {\r
245     list-style-position: outside;\r
246 }\r
247 ol.arabic {\r
248   list-style-type: decimal;\r
249 }\r
250 ol.loweralpha {\r
251   list-style-type: lower-alpha;\r
252 }\r
253 ol.upperalpha {\r
254   list-style-type: upper-alpha;\r
255 }\r
256 ol.lowerroman {\r
257   list-style-type: lower-roman;\r
258 }\r
259 ol.upperroman {\r
260   list-style-type: upper-roman;\r
261 }\r
262 \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
266   margin-top: 0.1em;\r
267   margin-bottom: 0.1em;\r
268 }\r
269 \r
270 div.tableblock > table {\r
271   border: 3px solid #527bbd;\r
272 }\r
273 thead, p.table.header {\r
274   font-weight: bold;\r
275   color: #527bbd;\r
276 }\r
277 tfoot {\r
278   font-weight: bold;\r
279 }\r
280 td > div.verse {\r
281   white-space: pre;\r
282 }\r
283 p.table {\r
284   margin-top: 0;\r
285 }\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
289 }\r
290 div.tableblock > table[frame="hsides"] {\r
291   border-left-style: none;\r
292   border-right-style: none;\r
293 }\r
294 div.tableblock > table[frame="vsides"] {\r
295   border-top-style: none;\r
296   border-bottom-style: none;\r
297 }\r
298 \r
299 \r
300 div.hdlist {\r
301   margin-top: 0.8em;\r
302   margin-bottom: 0.8em;\r
303 }\r
304 div.hdlist tr {\r
305   padding-bottom: 15px;\r
306 }\r
307 dt.hdlist1.strong, td.hdlist1.strong {\r
308   font-weight: bold;\r
309 }\r
310 td.hdlist1 {\r
311   vertical-align: top;\r
312   font-style: normal;\r
313   padding-right: 0.8em;\r
314   color: navy;\r
315 }\r
316 td.hdlist2 {\r
317   vertical-align: top;\r
318 }\r
319 div.hdlist.compact tr {\r
320   margin: 0;\r
321   padding-bottom: 0;\r
322 }\r
323 \r
324 .comment {\r
325   background: yellow;\r
326 }\r
327 \r
328 .footnote, .footnoteref {\r
329   font-size: 0.8em;\r
330 }\r
331 \r
332 span.footnote, span.footnoteref {\r
333   vertical-align: super;\r
334 }\r
335 \r
336 #footnotes {\r
337   margin: 20px 0 20px 0;\r
338   padding: 7px 0 0 0;\r
339 }\r
340 \r
341 #footnotes div.footnote {\r
342   margin: 0 0 5px 0;\r
343 }\r
344 \r
345 #footnotes hr {\r
346   border: none;\r
347   border-top: 1px solid silver;\r
348   height: 1px;\r
349   text-align: left;\r
350   margin-left: 0;\r
351   width: 20%;\r
352   min-width: 100px;\r
353 }\r
354 \r
355 div.colist td {\r
356   padding-right: 0.5em;\r
357   padding-bottom: 0.3em;\r
358   vertical-align: top;\r
359 }\r
360 div.colist td img {\r
361   margin-top: 0.3em;\r
362 }\r
363 \r
364 @media print {\r
365   div#footer-badges { display: none; }\r
366 }\r
367 \r
368 div#toc {\r
369   margin-bottom: 2.5em;\r
370 }\r
371 \r
372 div#toctitle {\r
373   color: #527bbd;\r
374   font-size: 1.1em;\r
375   font-weight: bold;\r
376   margin-top: 1.0em;\r
377   margin-bottom: 0.1em;\r
378 }\r
379 \r
380 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
381   margin-top: 0;\r
382   margin-bottom: 0;\r
383 }\r
384 div.toclevel2 {\r
385   margin-left: 2em;\r
386   font-size: 0.9em;\r
387 }\r
388 div.toclevel3 {\r
389   margin-left: 4em;\r
390   font-size: 0.9em;\r
391 }\r
392 div.toclevel4 {\r
393   margin-left: 6em;\r
394   font-size: 0.9em;\r
395 }\r
396 \r
397 </style>\r
398 <script type="text/javascript">\r
399 /*<![CDATA[*/\r
400 window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
401 var asciidoc = {  // Namespace.\r
402 \r
403 /////////////////////////////////////////////////////////////////////\r
404 // Table Of Contents generator\r
405 /////////////////////////////////////////////////////////////////////\r
406 \r
407 /* Author: Mihai Bazon, September 2002\r
408  * http://students.infoiasi.ro/~mishoo\r
409  *\r
410  * Table Of Content generator\r
411  * Version: 0.4\r
412  *\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
415  */\r
416 \r
417  /* modified by Troy D. Hanson, September 2006. License: GPL */\r
418  /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
419 \r
420 // toclevels = 1..4.\r
421 toc: function (toclevels) {\r
422 \r
423   function getText(el) {\r
424     var text = "";\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
427         text += i.data;\r
428       else if (i.firstChild != null)\r
429         text += getText(i);\r
430     }\r
431     return text;\r
432   }\r
433 \r
434   function TocEntry(el, text, toclevel) {\r
435     this.element = el;\r
436     this.text = text;\r
437     this.toclevel = toclevel;\r
438   }\r
439 \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
445     // browsers).\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
452           }\r
453           iterate(i);\r
454         }\r
455       }\r
456     }\r
457     iterate(el);\r
458     return result;\r
459   }\r
460 \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
474   }\r
475   if (entries.length == 0)\r
476     toc.parentNode.removeChild(toc);\r
477 },\r
478 \r
479 \r
480 /////////////////////////////////////////////////////////////////////\r
481 // Footnotes generator\r
482 /////////////////////////////////////////////////////////////////////\r
483 \r
484 /* Based on footnote generation code from:\r
485  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
486  */\r
487 \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
492   var refs = {};\r
493   var n = 0;\r
494   for (i=0; i<spans.length; i++) {\r
495     if (spans[i].className == "footnote") {\r
496       n++;\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
509     }\r
510   }\r
511   if (n == 0)\r
512     noteholder.parentNode.removeChild(noteholder);\r
513   else {\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
519         n = refs[href];\r
520         spans[i].innerHTML =\r
521           "[<a href='#_footnote_" + n +\r
522           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
523       }\r
524     }\r
525   }\r
526 }\r
527 \r
528 }\r
529 /*]]>*/\r
530 </script>\r
531 </head>\r
532 <body class="article">\r
533 <div id="header">\r
534 <h1>ccache installation</h1>\r
535 <span id="revnumber">version 3.1.6</span>\r
536 <div id="toc">
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>
539 </div>\r
540 </div>\r
541 <div id="content">\r
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
549 <li>\r
550 <p>\r
551 A C compiler (for instance GCC)\r
552 </p>\r
553 </li>\r
554 </ul></div>\r
555 <div class="paragraph"><p>It is also recommended that you have:</p></div>\r
556 <div class="ulist"><ul>\r
557 <li>\r
558 <p>\r
559 zlib <a href="http://www.zlib.net">http://www.zlib.net</a> (if you don&#8217;t have zlib installed, ccache will\r
560   use a bundled copy)\r
561 </p>\r
562 </li>\r
563 </ul></div>\r
564 </div>\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
571 make\r
572 make install</tt></pre>\r
573 </div></div>\r
574 <div class="paragraph"><p>You may set the installation directory and other parameters by options to\r
575 &#8220;./configure&#8221;. To see them, run &#8220;./configure --help&#8221;.</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 &#8220;ccache&#8221; 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
582 path.</p></div>\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
591 </div></div>\r
592 <div class="paragraph"><p>And so forth. This will work as long as &#8220;/usr/local/bin&#8221; comes before the\r
593 path to the compiler (which is usually in &#8220;/usr/bin&#8221;). After installing you\r
594 may wish to run &#8220;which gcc&#8221; to make sure that the correct link is being used.</p></div>\r
595 <div class="admonitionblock">\r
596 <table><tr>\r
597 <td class="icon">\r
598 <div class="title">Note</div>\r
599 </td>\r
600 <td class="content">Do not use a hard link, use a symbolic link. A hard link will cause\r
601 &#8220;interesting&#8221; problems.</td>\r
602 </tr></table>\r
603 </div>\r
604 </div>\r
605 </div>\r
606 </div>\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
612 <li>\r
613 <p>\r
614 AsciiDoc (<a href="http://www.methods.co.nz/asciidoc/">http://www.methods.co.nz/asciidoc/</a>) to build the documentation.\r
615 </p>\r
616 </li>\r
617 <li>\r
618 <p>\r
619 Autoconf (<a href="http://www.gnu.org/software/autoconf/">http://www.gnu.org/software/autoconf/</a>)\r
620 </p>\r
621 </li>\r
622 </ul></div>\r
623 <div class="paragraph"><p>To debug and run the performance test suite you&#8217;ll also need:</p></div>\r
624 <div class="ulist"><ul>\r
625 <li>\r
626 <p>\r
627 Perl (<a href="http://www.perl.org/">http://www.perl.org/</a>)\r
628 </p>\r
629 </li>\r
630 <li>\r
631 <p>\r
632 Python (<a href="http://www.python.org/">http://www.python.org/</a>)\r
633 </p>\r
634 </li>\r
635 </ul></div>\r
636 <div class="paragraph"><p>Run "./autogen.sh" and then follow the steps mentioned under "Installation"\r
637 above.</p></div>\r
638 </div>\r
639 </div>\r
640 </div>\r
641 <div id="footnotes"><hr /></div>\r
642 <div id="footer">\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
646 </div>\r
647 </div>\r
648 </body>\r
649 </html>\r