All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas De Schampheleire <patrickdepinguin@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3] ccache: expose control interface via 'make ccache-options'
Date: Thu, 10 Oct 2013 09:59:46 +0200	[thread overview]
Message-ID: <CAAXf6LWg8YGG-yv3dvZjqswagBOMV8gmT1XsWz4KOygEbFUtGw@mail.gmail.com> (raw)
In-Reply-To: <1381339099-3666-1-git-send-email-tjlee@ambarella.com>

Hi Tzu-Jung,

On Wed, Oct 9, 2013 at 7:18 PM, Tzu-Jung Lee <roylee17@gmail.com> wrote:
> usage:
>         # set cache limit size
>         make CCACHE_OPTIONS="--max-size=5G" ccache-options
>
>         # zero statistics counters
>         make CCACHE_OPTIONS="--zero-stats" ccache-options
>
> Signed-off-by: Tzu-Jung Lee <tjlee@ambarella.com>
> ---
> Fix a typo of manual in v2
>
>  docs/manual/ccache-support.txt | 11 +++++++++++
>  package/ccache/ccache.mk       |  5 +++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/docs/manual/ccache-support.txt b/docs/manual/ccache-support.txt
> index 4969180..fe06a01 100644
> --- a/docs/manual/ccache-support.txt
> +++ b/docs/manual/ccache-support.txt
> @@ -23,3 +23,14 @@ remove this directory.
>
>  You can get statistics on the cache (its size, number of hits,
>  misses, etc.) by running +make ccache-stats+.
> +
> +The make target +ccache-options+ and the +CCACHE_OPTIONS+ variable
> +provide more generic access to the ccache. For example
> +
> +-----------------
> +# set cache limit size
> +make CCACHE_OPTIONS="--max-size=5G" ccache-options
> +
> +# zero statistics counters
> +make CCACHE_OPTIONS="--zero-stats" ccache-options
> +-----------------
> diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk
> index c5e9385..663a959 100644
> --- a/package/ccache/ccache.mk
> +++ b/package/ccache/ccache.mk
> @@ -45,3 +45,8 @@ ifeq ($(BR2_CCACHE),y)
>  ccache-stats: host-ccache
>         $(Q)$(CCACHE) -s
>  endif
> +
> +ifeq ($(BR2_CCACHE),y)
> +ccache-options: host-ccache
> +       $(Q)$(CCACHE) $(CCACHE_OPTIONS)
> +endif

I think this 'ifeq' block can be merged with the previous one
containing ccache-stats.

Also, while testing I noticed the following: if you do not specify
CCACHE_OPTIONS, ccache gives its help message, but it is unclear to
the user that he should put those options in CCACHE_OPTIONS. Assume
someone knows there is a make target ccache-options but did not read
the manual.
Therefore, I would suggest to add a check inside the ccache-options
recipe for a non-empty CCACHE_OPTIONS and give a warning message.
Something like:

diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk
--- a/package/ccache/ccache.mk
+++ b/package/ccache/ccache.mk
@@ -48,5 +48,11 @@ endif

 ifeq ($(BR2_CCACHE),y)
 ccache-options: host-ccache
+ifeq ($(CCACHE_OPTIONS),)
+       $(Q)echo "Usage: make ccache-options CCACHE_OPTIONS=\"opts\""
+       $(Q)echo "where 'opts' corresponds to one or more valid ccache
options" \
+               "(see ccache help text below)"
+       $(Q)echo
+endif
        $(Q)$(CCACHE) $(CCACHE_OPTIONS)
 endif

This makes the output:

$ make ccache-options
Usage: make ccache-options CCACHE_OPTIONS="opts"
where 'opts' corresponds to one or more valid ccache options (see
ccache help text below)

Usage:
    ccache [options]
    ccache compiler [compiler options]
    compiler [compiler options]          (via symbolic link)

Options:
    -c, --cleanup         delete old files and recalculate size counters
                          (normally not needed as this is done automatically)
    -C, --clear           clear the cache completely
    -F, --max-files=N     set maximum number of files in cache to N (use 0 for
                          no limit)
    -M, --max-size=SIZE   set maximum size of cache to SIZE (use 0 for no
                          limit; available suffixes: G, M and K; default
                          suffix: G)
    -s, --show-stats      show statistics summary
    -z, --zero-stats      zero statistics counters

    -h, --help            print this help text
    -V, --version         print version and copyright information

See also <http://ccache.samba.org>.
make: *** [ccache-options] Error 1


Best regards,
Thomas

  parent reply	other threads:[~2013-10-10  7:59 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-18  3:50 [Buildroot] [PATCH 1/1] ccache: expose control interface via 'make ccache-options' Tzu-Jung Lee
2012-06-19 12:51 ` Tzu-Jung Lee
     [not found] ` <CAEvN+1jCAvFYsOkbv4Rf4g7YqZJe4Ty9cwpFMiAUTTAvh7mvQg@mail.gmail.com>
2013-10-07 22:09   ` Tzu-Jung Lee
2013-10-08  6:46     ` Arnout Vandecappelle
2013-10-08 21:31       ` [Buildroot] [PATCH v2] " Tzu-Jung Lee
2013-10-09  6:55         ` Thomas De Schampheleire
2013-10-09 17:18       ` [Buildroot] [PATCH v3] " Tzu-Jung Lee
2013-10-10  7:12         ` Thomas Petazzoni
2013-10-10  7:59         ` Thomas De Schampheleire [this message]
2013-10-10 17:50           ` [Buildroot] [PATCH v4] " Tzu-Jung Lee
2013-10-10 19:45             ` Thomas De Schampheleire
2013-10-10 19:51               ` Tzu-Jung Lee
2013-10-10 20:57                 ` Thomas Petazzoni
2013-10-10 21:01                   ` Tzu-Jung Lee
2013-10-10 21:05                     ` Thomas Petazzoni
2013-10-11  4:52                       ` Thomas De Schampheleire
2013-10-27  9:34             ` Peter Korsgaard
2013-10-08  7:11     ` [Buildroot] [PATCH 1/1] " Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAAXf6LWg8YGG-yv3dvZjqswagBOMV8gmT1XsWz4KOygEbFUtGw@mail.gmail.com \
    --to=patrickdepinguin@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.