--- toast 2005/09/13 06:21:19 1.405 +++ toast 2005/09/13 06:34:41 1.406 @@ -2727,33 +2727,12 @@ $found ||= -x(path($_, "ccache")) for split(/:/, $path); return true unless $found; - my($storecachedir) = path(storedir, "ccache"); - my($cachedir); - if(exists($ENV{"CCACHE_DIR"})) - { - $cachedir = $ENV{"CCACHE_DIR"}; - } - elsif(superuser) - { - optmd($cachedir = $storecachedir); - } - else - { - return true unless exists($ENV{"HOME"}) && -d($ENV{"HOME"}); - $cachedir = path($ENV{"HOME"}, ".ccache"); - } - - chownnonroot($cachedir) if superuser && !belongstononroot($cachedir) && - optsamefile($cachedir, $storecachedir); - for($cmd, "$cmd.helper") { writescript(path($helperdir, $_), qq[ #!/bin/sh # $genby PATH=$path -CCACHE_DIR=$cachedir -export CCACHE_DIR exec ccache $_ "\$\@" ]); } @@ -3940,6 +3919,31 @@ defined($version) || error; clean($name, $version) if autoclean; + + local(%ENV) = %ENV; + if(ccache) + { + my($storecachedir) = path(storedir, "ccache"); + my($cachedir); + if(exists($ENV{"CCACHE_DIR"})) + { + $cachedir = $ENV{"CCACHE_DIR"}; + } + elsif(superuser) + { + optmd($cachedir = $storecachedir); + } + elsif(exists($ENV{"HOME"}) && -d($ENV{"HOME"})) + { + $cachedir = path($ENV{"HOME"}, ".ccache"); + } + + chownnonroot($cachedir) if superuser && !belongstononroot($cachedir) && + optsamefile($cachedir, $storecachedir); + + $ENV{"CCACHE_DIR"} = $cachedir; + announce("export", "CCACHE_DIR=$cachedir"); + } my($verdir) = pkgpath($name, $version); my(@allbuilds) = allbuilds($name, $version);