ccache man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

ccache(1)						ccache(1)

NAME
       ccache - a fast compiler cache

SYNOPSIS
       ccache [OPTION]

       ccache <compiler> [COMPILER OPTIONS]

       <compiler> [COMPILER OPTIONS]

DESCRIPTION
       ccache is a compiler cache. It speeds up re-compilation of
       C/C++ code by caching previous compiles and detecting when
       the same compile is being done again.

OPTIONS SUMMARY
       Here is a summary of the options to ccache.

       -s		       show statistics summary
       -z		       zero statistics
       -c		       run a cache cleanup
       -F <maxfiles>	       set maximum files in cache
       -M <maxsize>	       set maximum size of cache (use G, M or K)
       -h		       this help page
       -V		       print version number

OPTIONS
       These  options  only  apply  when  you  invoke  ccache  as
       "ccache". When invoked as a compiler none of these options
       apply. In that case your normal compiler options apply and
       you should refer to your compilers documentation.

       -h     Print a options summary page

       -s     Print the current statistics summary for the cache.
	      The  statistics are stored spread across the subdi
	      rectories of the cache. Using "ccache -s"	 adds  up
	      the statistics across all subdirectories and prints
	      the totals.

       -z     Zero the cache statistics.

       -V     Print the ccache version number

       -c     Clean the cache and  re-calculate	 the  cache  file
	      count  and  size	totals.	 Normally  the	-c option
	      should not be necessary as ccache keeps  the  cache
	      below  the  specified  limits  at runtime and keeps
	      statistics up to date on each compile. This  option
	      is  mostly  useful if you manually modify the cache
	      contents or believe that the cache size  statistics
	      may be inaccurate.

       -F maxfiles
	      This  sets  the  maximum number of files allowed in
	      the cache. The value is  stored  inside  the  cache
	      directory	 and  applies to all future compiles. Due
	      to the way the value is  stored  the  actual  value
	      used is always rounded down to the nearest multiple
	      of 16.

       -M maxsize
	      This sets the maximum cache size. You can specify a
	      value  in	 gigabytes,  megabytes	or  kilobytes  by
	      appending a G, M or K to the value. The default  is
	      gigabytes.  The actual value stored is rounded down
	      to the nearest multiple of 16 kilobytes.

INSTALLATION
       There are two ways to use ccache. You  can  either  prefix
       your  compile  commands	with "ccache" or you can create a
       symbolic link between ccache and the names of your compil
       ers.  The first method is most convenient if you just want
       to try out ccache or wish to use it for some specific pro
       jects.  The second method is most useful for when you wish
       to use ccache for all your compiles.

       To install for usage by the first method just copy  ccache
       to somewhere in your path.

       To install for the second method do something like this:

	 cp ccache /usr/local/bin/
	 ln -s /usr/local/bin/ccache /usr/local/bin/gcc
	 ln -s /usr/local/bin/ccache /usr/local/bin/cc

       This  will work as long as /usr/local/bin comes before the
       path  to	 gcc  (which  is  usually  in  /usr/bin).   After
       installing  you	may  wish to run "which gcc" to make sure
       that the correct link is being used.

       Note! Do not use a hard	link,  use  a  symbolic	 link.	A
       hardlink will cause "interesting" problems.

ENVIRONMENT VARIABLES
       ccache  used  a number of environment variables to control
       operation. In most cases you won't need any  of	these  as
       the defaults will be fine.

       CCACHE_DIR
	      the CCACHE_DIR environment variable specifies where
	      ccache will keep its cached  compiler  output.  The
	      default is "$HOME/.ccache".

       CCACHE_LOGFILE
	      If  you set the CCACHE_LOGFILE environment variable
	      then ccache will	write  some  log  information  on
	      cache  hits and misses in that file. This is useful
	      for tracking down problems.

       CCACHE_PATH
	      You can optionally set CCACHE_PATH to a colon sepa
	      rated path where ccache will look for the real com
	      pilers. If you don't do this then ccache will  look
	      for the first executable matching the compiler name
	      in the normal PATH that isn't a  symbolic	 link  to
	      ccache itself.

       CCACHE_DISABLE
	      If  you set the environment variable CCACHE_DISABLE
	      then ccache  will	 just  call  the  real	compiler,
	      bypassing the cache completely.

       CCACHE_CPP2
	      If  you  set  the	 environment variable CCACHE_CPP2
	      then ccache will not use the optimisation of avoid
	      ing  the 2nd call to the pre-processor by compiling
	      the pre-processed output that was used for  finding
	      the  hash in the case of a cache miss. This is pri
	      marily a debugging option, although it is	 possible
	      that some unusual compilers will have problems with
	      the intermediate filename extensions used	 in  this
	      optimisation, in which case this option could allow
	      ccache to be used.

       CCACHE_NOSTATS
	      If you set the environment variable  CCACHE_NOSTATS
	      then ccache will not update the statistics files on
	      each compile.

       CCACHE_NLEVELS
	      The environment variable CCACHE_NLEVELS allows  you
	      to choose the number of levels of hash in the cache
	      directory. The default is 2. The minimum is  1  and
	      the maximum is 8.

       CCACHE_NOLINK
	      If  you  set the environment variable CCACHE_NOLINK
	      then ccache will not use hard links from the  cache
	      directory	 when  creating	 the  compiler output and
	      will do a file copy instead. The	main  reason  for
	      setting  this  option is to avoid the update of the
	      modification time on  object  files  that	 are  the
	      result  of  the  same  compilation  in  a different
	      directory.

       CCACHE_UNIFY
	      If you set the  environment  variable  CCACHE_UNIFY
	      then ccache will use the C/C++ unifier when hashing
	      the pre-processor output if -g is not used  in  the
	      compile.	The unifier is slower than a normal hash,
	      so setting this environment variable loses a little
	      bit  of  speed,  but  it means that ccache can take
	      advantage of not recompiling when	 the  changes  to
	      the  source code consist of reformatting only. Note
	      that using CCACHE_UNIFY changes the hash, so cached
	      compiles	with CCACHE_UNIFY set cannot be used when
	      CCACHE_UNIFY is not set and vice versa. The  reason
	      the  unifier  is off by default is that it can give
	      incorrect line number information in compiler warn
	      ing messages.

CACHE SIZE MANAGEMENT
       By  default ccache has no limit on the cache size. You can
       set a limit using the "ccache -M" and "ccache -F" options,
       which set the size and number of files limits.

       When these limits are reached ccache will reduce the cache
       to 20% below the numbers you specified in order	to  avoid
       doing the cache clean operation too often.

HOW IT WORKS
       The basic idea is to detect when you are compiling exactly
       the same code a 2nd time and use the  previously	 compiled
       output.	You  detect that it is the same code by forming a
       hash of:

       o      the pre-processor output from running the	 compiler
	      with -E

       o      the command line options

       o      the real compilers size and modification time

       o      any stderr output generated by the compiler

       These  are  hashed  using  md4 (a strong hash) and a cache
       file is formed based on that hash result.  When	the  same
       compilation is done a second time ccache is able to supply
       the correct compiler output (including all  warnings  etc)
       from the cache.

       ccache  has  been  carefully  written  to  always  produce
       exactly the same compiler output that you would get  with
       out  the	 cache.	 If you ever discover a case where ccache
       changes the output of your compiler  then  please  let  me
       know.

HISTORY
       ccache  was  inspired  by  the  compilercache shell script
       script written by Erik Thiele and I would  like	to  thank
       him    for    an	   excellent	piece	 of   work.   See
       http://www.erikyyy.de/compilercache/   for   the	   Erik's
       scripts.

       I  wrote	 ccache	 because I wanted to get a bit more speed
       out of a compiler cache and I wanted to remove some of the
       limitations of the shell-script version.

DIFFERENCES FROM COMPILERCACHE
       The   biggest  differences  between  Erik's  compilercache
       script and ccache are:

       o      ccache is written in C, which makes it a bit faster
	      (calling	out  to	 external programs is mostly what
	      slowed down the scripts).

       o      ccache can automatically find the real compiler

       o      ccache keeps statistics on hits/misses

       o      ccache can do automatic cache management

       o      ccache can  cache	 compiler  output  that	 includes
	      warnings.	 In  many  cases this gives ccache a much
	      higher cache hit rate.

       o      ccache can handle a much wider ranger  of	 compiler
	      options

       o      ccache avoids a double call to cpp on a cache miss

CREDITS
       Thanks  to the following people for their contributions to
       ccache

       o      Erik Thiele for the original compilercache script

       o      Luciano Rocha for the idea of  compiling	the  pre-
	      processor output to avoid a 2nd cpp pass

       o      Paul  Russell  for  many suggestions and the debian
	      packaging

AUTHOR
       ccache	  was	  written     by     Andrew	 Tridgell
       http://samba.org/~tridge/

       If  you wish to report a problem or make a suggestion then
       please email bugs@ccache.samba.org

       ccache is released under the GNU	 General  Public  License
       version	2  or  later.  Please  see  the	 file COPYING for
       license details.

			    April 2002			ccache(1)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net