annotate lib/swig/swigwin-2.0.11/CCache/ccache.yo @ 1899:b3009adc0e2f

Adding swig, gitignore, hgignore
author Nomad
date Mon, 21 Oct 2013 10:42:27 +0200
parents
children
rev   line source
1899
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
1 whenman(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
2 COMMENT(html output not great if included when using html2doc)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
3 manpage(ccache-swig)(1)()()()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
4 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
5
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
6 whenhtml(htmlcommand(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
7
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
8 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
9 <html>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
10 <head>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
11 <title>ccache-swig(1) manpage</title>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
12 <link rel="stylesheet" type="text/css" href="style.css">
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
13 </head>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
14
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
15 <body bgcolor="#ffffff">
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
16 <H1><a name="CCache"></a>Using SWIG with ccache - ccache-swig(1) manpage</H1>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
17 <!-- INDEX -->
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
18 <div class="sectiontoc">
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
19 <!-- INDEX -->
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
20
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
21 ))
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
22
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
23
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
24 manpagename(ccache-swig)(a fast compiler cache)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
25
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
26 whenhtml(htmlcommand(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
27 ccache-swig - a fast compiler cache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
28 ))
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
29
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
30 manpagesynopsis()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
31
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
32 ccache-swig [OPTION]
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
33
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
34 ccache-swig <compiler> [COMPILER OPTIONS]
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
35
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
36 <compiler> [COMPILER OPTIONS]
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
37
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
38 manpagedescription()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
39
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
40 ccache-swig is a compiler cache. It speeds up re-compilation of C/C++/SWIG code
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
41 by caching previous compiles and detecting when the same compile is
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
42 being done again. ccache-swig is ccache plus support for SWIG. ccache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
43 and ccache-swig are used interchangeably in this document.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
44
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
45 manpagesection(OPTIONS SUMMARY)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
46
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
47 Here is a summary of the options to ccache-swig.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
48
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
49 verb(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
50 -s show statistics summary
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
51 -z zero statistics
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
52 -c run a cache cleanup
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
53 -C clear the cache completely
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
54 -F <n> set maximum files in cache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
55 -M <n> set maximum size of cache (use G, M or K)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
56 -h this help page
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
57 -V print version number
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
58 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
59
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
60 manpageoptions()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
61
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
62 These options only apply when you invoke ccache as "ccache-swig". When
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
63 invoked as a compiler none of these options apply. In that case your
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
64 normal compiler options apply and you should refer to your compilers
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
65 documentation.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
66
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
67 startdit()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
68 dit(bf(-h)) Print a options summary page
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
69
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
70 dit(bf(-s)) Print the current statistics summary for the cache. The
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
71 statistics are stored spread across the subdirectories of the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
72 cache. Using "ccache-swig -s" adds up the statistics across all
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
73 subdirectories and prints the totals.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
74
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
75 dit(bf(-z)) Zero the cache statistics.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
76
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
77 dit(bf(-V)) Print the ccache version number
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
78
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
79 dit(bf(-c)) Clean the cache and re-calculate the cache file count and
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
80 size totals. Normally the -c option should not be necessary as ccache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
81 keeps the cache below the specified limits at runtime and keeps
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
82 statistics up to date on each compile. This option is mostly useful
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
83 if you manually modify the cache contents or believe that the cache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
84 size statistics may be inaccurate.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
85
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
86 dit(bf(-C)) Clear the entire cache, removing all cached files.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
87
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
88 dit(bf(-F <maxfiles>)) This sets the maximum number of files allowed in
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
89 the cache. The value is stored inside the cache directory and applies
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
90 to all future compiles. Due to the way the value is stored the actual
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
91 value used is always rounded down to the nearest multiple of 16.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
92
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
93 dit(bf(-M <maxsize>)) This sets the maximum cache size. You can specify
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
94 a value in gigabytes, megabytes or kilobytes by appending a G, M or K
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
95 to the value. The default is gigabytes. The actual value stored is
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
96 rounded down to the nearest multiple of 16 kilobytes.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
97
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
98 enddit()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
99
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
100 manpagesection(INSTALLATION)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
101
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
102 There are two ways to use ccache. You can either prefix your compile
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
103 commands with "ccache-swig" or you can create a symbolic link between
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
104 ccache-swig and the names of your compilers. The first method is most
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
105 convenient if you just want to try out ccache or wish to use it for
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
106 some specific projects. The second method is most useful for when you
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
107 wish to use ccache for all your compiles.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
108
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
109 To install for usage by the first method just copy ccache-swig to somewhere
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
110 in your path.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
111
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
112 To install for the second method do something like this:
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
113 verb(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
114 cp ccache-swig /usr/local/bin/
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
115 ln -s /usr/local/bin/ccache-swig /usr/local/bin/gcc
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
116 ln -s /usr/local/bin/ccache-swig /usr/local/bin/g++
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
117 ln -s /usr/local/bin/ccache-swig /usr/local/bin/cc
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
118 ln -s /usr/local/bin/ccache-swig /usr/local/bin/swig
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
119 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
120 This will work as long as /usr/local/bin comes before the path to gcc
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
121 (which is usually in /usr/bin). After installing you may wish to run
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
122 "which gcc" to make sure that the correct link is being used.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
123
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
124 Note! Do not use a hard link, use a symbolic link. A hardlink will
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
125 cause "interesting" problems.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
126
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
127 manpagesection(EXTRA OPTIONS)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
128
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
129 When run as a compiler front end ccache usually just takes the same
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
130 command line options as the compiler you are using. The only exception
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
131 to this is the option '--ccache-skip'. That option can be used to tell
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
132 ccache that the next option is definitely not a input filename, and
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
133 should be passed along to the compiler as-is.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
134
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
135 The reason this can be important is that ccache does need to parse the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
136 command line and determine what is an input filename and what is a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
137 compiler option, as it needs the input filename to determine the name
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
138 of the resulting object file (among other things). The heuristic
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
139 ccache uses in this parse is that any string on the command line that
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
140 exists as a file is treated as an input file name (usually a C
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
141 file). By using --ccache-skip you can force an option to not be
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
142 treated as an input file name and instead be passed along to the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
143 compiler as a command line option.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
144
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
145 manpagesection(ENVIRONMENT VARIABLES)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
146
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
147 ccache uses a number of environment variables to control operation. In
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
148 most cases you won't need any of these as the defaults will be fine.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
149
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
150 startdit()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
151
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
152 dit(bf(CCACHE_DIR)) the CCACHE_DIR environment variable specifies
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
153 where ccache will keep its cached compiler output. The default is
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
154 "$HOME/.ccache".
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
155
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
156 dit(bf(CCACHE_TEMPDIR)) the CCACHE_TEMPDIR environment variable specifies
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
157 where ccache will put temporary files. The default is the same as
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
158 CCACHE_DIR. Note that the CCACHE_TEMPDIR path must be on the same
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
159 filesystem as the CCACHE_DIR path, so that renames of files between
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
160 the two directories can work.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
161
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
162 dit(bf(CCACHE_LOGFILE)) If you set the CCACHE_LOGFILE environment
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
163 variable then ccache will write some log information on cache hits
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
164 and misses in that file. This is useful for tracking down problems.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
165
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
166 dit(bf(CCACHE_VERBOSE)) If you set the CCACHE_VERBOSE environment
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
167 variable then ccache will display on stdout all the compiler invocations
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
168 that it makes. This can useful for debugging unexpected problems.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
169
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
170 dit(bf(CCACHE_PATH)) You can optionally set CCACHE_PATH to a colon
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
171 separated path where ccache will look for the real compilers. If you
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
172 don't do this then ccache will look for the first executable matching
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
173 the compiler name in the normal PATH that isn't a symbolic link to
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
174 ccache itself.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
175
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
176 dit(bf(CCACHE_CC)) You can optionally set CCACHE_CC to force the name
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
177 of the compiler to use. If you don't do this then ccache works it out
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
178 from the command line.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
179
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
180 dit(bf(CCACHE_PREFIX)) This option adds a prefix to the command line
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
181 that ccache runs when invoking the compiler. Also see the section
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
182 below on using ccache with distcc.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
183
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
184 dit(bf(CCACHE_DISABLE)) If you set the environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
185 CCACHE_DISABLE then ccache will just call the real compiler,
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
186 bypassing the cache completely.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
187
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
188 dit(bf(CCACHE_READONLY)) the CCACHE_READONLY environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
189 tells ccache to attempt to use existing cached object files, but not
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
190 to try to add anything new to the cache. If you are using this because
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
191 your CCACHE_DIR is read-only, then you may find that you also need to
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
192 set CCACHE_TEMPDIR as otherwise ccache will fail to create the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
193 temporary files.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
194
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
195 dit(bf(CCACHE_CPP2)) If you set the environment variable CCACHE_CPP2
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
196 then ccache will not use the optimisation of avoiding the 2nd call to
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
197 the pre-processor by compiling the pre-processed output that was used
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
198 for finding the hash in the case of a cache miss. This is primarily a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
199 debugging option, although it is possible that some unusual compilers
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
200 will have problems with the intermediate filename extensions used in
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
201 this optimisation, in which case this option could allow ccache to be
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
202 used.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
203
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
204 dit(bf(CCACHE_NOCOMPRESS)) If you set the environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
205 CCACHE_NOCOMPRESS then there is no compression used on files that go
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
206 into the cache. However, this setting has no effect on how files are
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
207 retrieved from the cache, compressed results will still be usable.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
208
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
209 dit(bf(CCACHE_NOSTATS)) If you set the environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
210 CCACHE_NOSTATS then ccache will not update the statistics files on
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
211 each compile.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
212
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
213 dit(bf(CCACHE_NLEVELS)) The environment variable CCACHE_NLEVELS allows
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
214 you to choose the number of levels of hash in the cache directory. The
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
215 default is 2. The minimum is 1 and the maximum is 8.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
216
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
217 dit(bf(CCACHE_HARDLINK)) If you set the environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
218 CCACHE_HARDLINK then ccache will attempt to use hard links from the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
219 cache directory when creating the compiler output rather than using a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
220 file copy. Using hard links is faster, but can confuse programs like
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
221 'make' that rely on modification times. Hard links are never made for
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
222 compressed cache files.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
223
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
224 dit(bf(CCACHE_RECACHE)) This forces ccache to not use any cached
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
225 results, even if it finds them. New results are still cached, but
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
226 existing cache entries are ignored.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
227
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
228 dit(bf(CCACHE_UMASK)) This sets the umask for ccache and all child
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
229 processes (such as the compiler). This is mostly useful when you wish
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
230 to share your cache with other users. Note that this also affects the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
231 file permissions set on the object files created from your
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
232 compilations.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
233
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
234 dit(bf(CCACHE_HASHDIR)) This tells ccache to hash the current working
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
235 directory when calculating the hash that is used to distinguish two
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
236 compiles. This prevents a problem with the storage of the current
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
237 working directory in the debug info of a object file, which can lead
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
238 ccache to give a cached object file that has the working directory in
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
239 the debug info set incorrectly. This option is off by default as the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
240 incorrect setting of this debug info rarely causes problems. If you
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
241 strike problems with gdb not using the correct directory then enable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
242 this option.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
243
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
244 dit(bf(CCACHE_UNIFY)) If you set the environment variable CCACHE_UNIFY
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
245 then ccache will use the C/C++ unifier when hashing the pre-processor
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
246 output if -g is not used in the compile. The unifier is slower than a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
247 normal hash, so setting this environment variable loses a little bit
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
248 of speed, but it means that ccache can take advantage of not
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
249 recompiling when the changes to the source code consist of
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
250 reformatting only. Note that using CCACHE_UNIFY changes the hash, so
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
251 cached compiles with CCACHE_UNIFY set cannot be used when
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
252 CCACHE_UNIFY is not set and vice versa. The reason the unifier is off
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
253 by default is that it can give incorrect line number information in
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
254 compiler warning messages.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
255
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
256 dit(bf(CCACHE_EXTENSION)) Normally ccache tries to automatically
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
257 determine the extension to use for intermediate C pre-processor files
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
258 based on the type of file being compiled. Unfortunately this sometimes
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
259 doesn't work, for example when using the aCC compiler on HP-UX. On
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
260 systems like this you can use the CCACHE_EXTENSION option to override
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
261 the default. On HP-UX set this environment variable to "i" if you use
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
262 the aCC compiler.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
263
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
264 dit(bf(CCACHE_STRIPC)) If you set the environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
265 CCACHE_STRIPC then ccache will strip the -c option when invoking
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
266 the preprocessor. This option is primarily for the Sun Workshop
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
267 C++ compiler as without this option an unwarranted warning is displayed:
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
268 CC: Warning: "-E" redefines product from "object" to "source (stdout)"
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
269 when -E and -c is used together.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
270
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
271 dit(bf(CCACHE_SWIG)) When using SWIG as the compiler and it does not
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
272 have 'swig' in the executable name, then the CCACHE_SWIG environment
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
273 variable needs to be set in order for ccache to work correctly with
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
274 SWIG. The use of CCACHE_CPP2 is also recommended for SWIG due to some
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
275 preprocessor quirks, however, use of CCACHE_CPP2 can often be skipped
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
276 -- check your generated code with and without this option set. Known
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
277 problems are using preprocessor directives within %inline blocks and
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
278 the use of '#pragma SWIG'.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
279
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
280 enddit()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
281
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
282 manpagesection(CACHE SIZE MANAGEMENT)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
283
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
284 By default ccache has a one gigabyte limit on the cache size and no
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
285 maximum number of files. You can set a different limit using the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
286 "ccache -M" and "ccache -F" options, which set the size and number of
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
287 files limits.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
288
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
289 When these limits are reached ccache will reduce the cache to 20%
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
290 below the numbers you specified in order to avoid doing the cache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
291 clean operation too often.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
292
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
293 manpagesection(CACHE COMPRESSION)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
294
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
295 By default on most platforms ccache will compress all files it puts
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
296 into the cache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
297 using the zlib compression. While this involves a negligible
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
298 performance slowdown, it significantly increases the number of files
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
299 that fit in the cache. You can turn off compression setting the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
300 CCACHE_NOCOMPRESS environment variable.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
301
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
302 manpagesection(HOW IT WORKS)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
303
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
304 The basic idea is to detect when you are compiling exactly the same
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
305 code a 2nd time and use the previously compiled output. You detect
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
306 that it is the same code by forming a hash of:
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
307
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
308 itemization(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
309 it() the pre-processor output from running the compiler with -E
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
310 it() the command line options
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
311 it() the real compilers size and modification time
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
312 it() any stderr output generated by the compiler
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
313 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
314
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
315 These are hashed using md4 (a strong hash) and a cache file is formed
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
316 based on that hash result. When the same compilation is done a second
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
317 time ccache is able to supply the correct compiler output (including
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
318 all warnings etc) from the cache.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
319
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
320 ccache has been carefully written to always produce exactly the same
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
321 compiler output that you would get without the cache. If you ever
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
322 discover a case where ccache changes the output of your compiler then
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
323 please let me know.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
324
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
325 manpagesection(USING CCACHE WITH DISTCC)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
326
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
327 distcc is a very useful program for distributing compilation across a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
328 range of compiler servers. It is often useful to combine distcc with
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
329 ccache, so that compiles that are done are sped up by distcc, but that
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
330 ccache avoids the compile completely where possible.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
331
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
332 To use distcc with ccache I recommend using the CCACHE_PREFIX
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
333 option. You just need to set the environment variable CCACHE_PREFIX to
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
334 'distcc' and ccache will prefix the command line used with the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
335 compiler with the command 'distcc'.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
336
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
337 manpagesection(SHARING A CACHE)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
338
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
339 A group of developers can increase the cache hit rate by sharing a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
340 cache directory. The hard links however cause unwanted side effects,
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
341 as all links to a cached file share the file's modification timestamp.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
342 This results in false dependencies to be triggered by timestamp-based
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
343 build systems whenever another user links to an existing
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
344 file. Typically, users will see that their libraries and binaries are
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
345 relinked without reason. To share a cache without side effects, the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
346 following conditions need to be met:
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
347
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
348 itemization(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
349 it() Use the same bf(CCACHE_DIR) environment variable setting
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
350 it() Unset the bf(CCACHE_HARDLINK) environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
351 it() Make sure everyone sets the CCACHE_UMASK environment variable
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
352 to 002, this ensures that cached files are accessible to everyone in
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
353 the group.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
354 it() Make sure that all users have write permission in the entire
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
355 cache directory (and that you trust all users of the shared cache).
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
356 it() Make sure that the setgid bit is set on all directories in the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
357 cache. This tells the filesystem to inherit group ownership for new
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
358 directories. The command "chmod g+s `find $CCACHE_DIR -type d`" might
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
359 be useful for this.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
360 it() Set bf(CCACHE_NOCOMPRESS) for all users, if there are users with
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
361 versions of ccache that do not support compression.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
362 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
363
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
364 manpagesection(HISTORY)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
365
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
366 ccache was inspired by the compilercache shell script script written
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
367 by Erik Thiele and I would like to thank him for an excellent piece of
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
368 work. See
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
369 url(http://www.erikyyy.de/compilercache/)(http://www.erikyyy.de/compilercache/)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
370 for the Erik's scripts.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
371 ccache-swig is a port of the original ccache with support added for use
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
372 with SWIG.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
373
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
374 I wrote ccache because I wanted to get a bit more speed out of a
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
375 compiler cache and I wanted to remove some of the limitations of the
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
376 shell-script version.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
377
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
378 manpagesection(DIFFERENCES FROM COMPILERCACHE)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
379
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
380 The biggest differences between Erik's compilercache script and ccache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
381 are:
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
382 itemization(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
383 it() ccache is written in C, which makes it a bit faster (calling out to
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
384 external programs is mostly what slowed down the scripts).
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
385 it() ccache can automatically find the real compiler
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
386 it() ccache keeps statistics on hits/misses
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
387 it() ccache can do automatic cache management
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
388 it() ccache can cache compiler output that includes warnings. In many
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
389 cases this gives ccache a much higher cache hit rate.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
390 it() ccache can handle a much wider ranger of compiler options
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
391 it() ccache avoids a double call to cpp on a cache miss
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
392 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
393
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
394 manpagesection(CREDITS)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
395
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
396 Thanks to the following people for their contributions to ccache
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
397 itemization(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
398 it() Erik Thiele for the original compilercache script
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
399 it() Luciano Rocha for the idea of compiling the pre-processor output
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
400 to avoid a 2nd cpp pass
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
401 it() Paul Russell for many suggestions and the debian packaging
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
402 )
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
403
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
404 manpageauthor()
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
405
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
406 ccache was written by Andrew Tridgell
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
407 url(http://samba.org/~tridge/)(http://samba.org/~tridge/).
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
408 ccache was adapted to create ccache-swig for use with SWIG by William Fulton.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
409
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
410 If you wish to report a problem or make a suggestion then please email
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
411 the SWIG developers on the swig-devel mailing list, see
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
412 url(http://www.swig.org/mail.html)(http://www.swig.org/mail.html)
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
413
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
414 ccache is released under the GNU General Public License version 2 or
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
415 later. Please see the file COPYING for license details.
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
416
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
417 whenhtml(htmlcommand(
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
418
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
419 </body>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
420 </html>
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
421
b3009adc0e2f Adding swig, gitignore, hgignore
Nomad
parents:
diff changeset
422 ))