summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2010-03-25 21:45:25 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2010-03-25 21:45:25 +0000
commit516a2a7bfaee5d4aa4d1e7e5ff52d3038513c82f (patch)
tree5dc3dcc6d27c286af863850e2c88b796583ffe08 /util
parent0ab9d12e290ab79786d34fdf12c99922f5255aff (diff)
downloadcoreboot-516a2a7bfaee5d4aa4d1e7e5ff52d3038513c82f.tar.xz
Add support to build with ccache in the build system
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5297 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util')
-rwxr-xr-xutil/abuild/abuild14
-rw-r--r--util/romcc/romcc.c18
2 files changed, 26 insertions, 6 deletions
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 5aeca0f1f0..d982835983 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -55,6 +55,9 @@ silent=
# clang mode enabled by -sb option.
scanbuild=false
+# use ccache
+ccache=false
+
# stackprotect mode enabled by -ns option.
stackprotect=false
@@ -174,6 +177,11 @@ function create_config
echo "CONFIG_DEFAULT_CONSOLE_LOGLEVEL=$loglevel" >> .config
fi
+ if [ "$ccache" = "true" ]; then
+ printf "(ccache enabled) "
+ echo "CONFIG_CCACHE=y" >> .config
+ fi
+
if [ "$scanbuild" = "true" ]; then
printf "(scan-build enabled) "
echo "CONFIG_SCANBUILD_ENABLE=y" >> .config
@@ -495,6 +503,7 @@ function myhelp
printf " [-s|--silent] omit compiler calls in logs\n"
printf " [-ns|--nostackprotect] use gcc -fno-stack-protector option\n"
printf " [-sb|--scan-build] use clang's static analyzer\n"
+ printf " [-y|--ccache] use ccache\n"
printf " [-C|--config] configure-only mode\n"
printf " [-l|--loglevel <num>] set loglevel\n"
printf " [lbroot] absolute path to coreboot sources\n"
@@ -530,11 +539,11 @@ test "$ROOT" = "" && ROOT=$( cd ../..; pwd )
getoptbrand="`getopt -V`"
if [ "${getoptbrand:0:6}" == "getopt" ]; then
# Detected GNU getopt that supports long options.
- args=`getopt -l version,verbose,help,all,target:,broken,payloads:,test,cpus:,silent,xml,config,loglevel: Vvhat:bp:Tc:sxCl: -- "$@"`
+ args=`getopt -l version,verbose,help,all,target:,broken,payloads:,test,cpus:,silent,xml,config,loglevel:,ccache Vvhat:bp:Tc:sxCl:y -- "$@"`
eval set "$args"
else
# Detected non-GNU getopt
- args=`getopt Vvhat:bp:Tc:sxCl:o $*`
+ args=`getopt Vvhat:bp:Tc:sxCl:y $*`
set -- $args
fi
@@ -559,6 +568,7 @@ while true ; do
-s|--silent) shift; silent="-s";;
-ns|--nostackprotect) shift; stackprotect=true;;
-sb|--scan-build) shift; scanbuild=true;;
+ -y|--ccache) shift; ccache=true;;
-C|--config) shift; configureonly=1;;
-l|--loglevel) shift; loglevel="$1"; shift;;
--) shift; break;;
diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index aee86968af..b7c7a01d35 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -24968,10 +24968,14 @@ static void compile(const char *filename,
state.errout = stderr;
state.dbgout = stdout;
/* Remember the output filename */
- state.output = fopen(state.compiler->ofilename, "w");
- if (!state.output) {
- error(&state, 0, "Cannot open output file %s\n",
- state.compiler->ofilename);
+ if ((state.compiler->flags & COMPILER_PP_ONLY) && (strcmp("auto.inc",state.compiler->ofilename) == 0)) {
+ state.output = stdout;
+ } else {
+ state.output = fopen(state.compiler->ofilename, "w");
+ if (!state.output) {
+ error(&state, 0, "Cannot open output file %s\n",
+ state.compiler->ofilename);
+ }
}
/* Make certain a good cleanup happens */
exit_state = &state;
@@ -25146,6 +25150,12 @@ int main(int argc, char **argv)
else if (strncmp(argv[1], "-m", 2) == 0) {
result = arch_encode_flag(&arch, argv[1]+2);
}
+ else if (strncmp(argv[1], "-c", 2) == 0) {
+ result = 0;
+ }
+ else if (strncmp(argv[1], "-S", 2) == 0) {
+ result = 0;
+ }
else if (strncmp(argv[1], "-include", 10) == 0) {
struct filelist *old_head = include_filelist;
include_filelist = malloc(sizeof(struct filelist));