Skip to content

Commit

Permalink
ccache: simplyfing ccache logic, thanks to seo
Browse files Browse the repository at this point in the history
Signed-off-by: Stephan Raue <stephan@openelec.tv>
  • Loading branch information
sraue committed Oct 20, 2016
1 parent 485ebc4 commit 6f7e2cc
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 82 deletions.
30 changes: 15 additions & 15 deletions config/functions
Expand Up @@ -2,17 +2,17 @@ setup_toolchain() {
case "$1" in
target|init)
export DESTIMAGE="target"
export CC="${TARGET_PREFIX}gcc"
export CXX="${TARGET_PREFIX}g++"
export CPP="${TARGET_PREFIX}cpp"
export LD="${TARGET_PREFIX}ld"
export AS="${TARGET_PREFIX}as"
export AR="${TARGET_PREFIX}ar"
export NM="${TARGET_PREFIX}nm"
export RANLIB="${TARGET_PREFIX}ranlib"
export OBJCOPY="${TARGET_PREFIX}objcopy"
export OBJDUMP="${TARGET_PREFIX}objdump"
export STRIP="${TARGET_PREFIX}strip"
export CC="${TARGET_NAME}-gcc"
export CXX="${TARGET_NAME}-g++"
export CPP="${TARGET_NAME}-cpp"
export LD="${TARGET_NAME}-ld"
export AS="${TARGET_NAME}-as"
export AR="${TARGET_NAME}-ar"
export NM="${TARGET_NAME}-nm"
export RANLIB="${TARGET_NAME}-ranlib"
export OBJCOPY="${TARGET_NAME}-objcopy"
export OBJDUMP="${TARGET_NAME}-objdump"
export STRIP="${TARGET_NAME}-strip"
export CPPFLAGS="$TARGET_CPPFLAGS"
export CFLAGS="$TARGET_CFLAGS"
export CXXFLAGS="$TARGET_CXXFLAGS"
Expand All @@ -35,8 +35,8 @@ setup_toolchain() {
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $CMAKE_CONF
fi
export HOST_CC="$ROOT/$TOOLCHAIN/bin/host-gcc"
export HOST_CXX="$ROOT/$TOOLCHAIN/bin/host-g++"
export HOST_CC="gcc"
export HOST_CXX="g++"
export HOSTCC="$HOST_CC"
export HOSTCXX="$HOST_CXX"
export CC_FOR_BUILD="$HOST_CC"
Expand All @@ -50,8 +50,8 @@ setup_toolchain() {
host|bootstrap)
export DESTIMAGE="host"
export AWK="gawk"
export CC="$ROOT/$TOOLCHAIN/bin/host-gcc"
export CXX="$ROOT/$TOOLCHAIN/bin/host-g++"
export CC="gcc"
export CXX="g++"
export CPP="cpp"
export LD="ld"
export AS="as"
Expand Down
13 changes: 0 additions & 13 deletions config/options
Expand Up @@ -57,19 +57,6 @@ done
. $PROJECT_DIR/$PROJECT/options
fi

# Need to point to your actual cc
# If you have ccache installed, take care that LOCAL_CC don't point to it
LOCAL_CC=`which gcc`

if [ -z "$LOCAL_CC" ] ; then
echo "***** Please install gcc *****"
exit 127
fi

# Need to point to your actual g++
# If you have ccache installed, take care that LOCAL_CXX don't point to it
LOCAL_CXX=`which g++`

# verbose compilation mode (yes/no)
VERBOSE="yes"

Expand Down
4 changes: 2 additions & 2 deletions config/path
Expand Up @@ -16,7 +16,7 @@ set -e
. config/arch.$TARGET_ARCH
fi

HOST_NAME=`$LOCAL_CC -dumpmachine`
HOST_NAME=$(gcc -dumpmachine)
TARGET_NAME=$TARGET_GCC_ARCH-openelec-linux-gnu${TARGET_ABI}

BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION
Expand Down Expand Up @@ -171,7 +171,7 @@ export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config

if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
export PATH="$ROOT/$TOOLCHAIN/bin:$ROOT/$TOOLCHAIN/sbin:$PATH"
export PATH="$ROOT/$TOOLCHAIN/lib/ccache:$ROOT/$TOOLCHAIN/bin:$ROOT/$TOOLCHAIN/sbin:$PATH"
fi

if [ -z "$LD_LIBRARY_PATH" -o "$LD_LIBRARY_PATH" = "${LD_LIBRARY_PATH#$ROOT/$TOOLCHAIN/lib:}" ]; then
Expand Down
1 change: 0 additions & 1 deletion packages/compress/libz/package.mk
Expand Up @@ -39,7 +39,6 @@ HOST_CONFIGURE_OPTS="--prefix=$ROOT/$TOOLCHAIN"
pre_configure_host() {
# clean host cflags and use libz's own
CFLAGS=""
CC=$LOCAL_CC
}

pre_build_target() {
Expand Down
22 changes: 6 additions & 16 deletions packages/devel/ccache/package.mk
Expand Up @@ -32,24 +32,14 @@ PKG_LONGDESC="Ccache is a compiler cache. It speeds up re-compilation of C/C++ c
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

export CC=$LOCAL_CC
export CXX=$LOCAL_CXX

post_makeinstall_host() {
# setup ccache
$ROOT/$TOOLCHAIN/bin/ccache --max-size=$CCACHE_CACHE_SIZE
$ROOT/$TOOLCHAIN/bin/ccache --set-config=compiler_check=string:$(gcc -dumpversion)-$(get_pkg_version gcc)

cat > $ROOT/$TOOLCHAIN/bin/host-gcc <<EOF
#!/bin/sh
$ROOT/$TOOLCHAIN/bin/ccache $CC "\$@"
EOF

chmod +x $ROOT/$TOOLCHAIN/bin/host-gcc

cat > $ROOT/$TOOLCHAIN/bin/host-g++ <<EOF
#!/bin/sh
$ROOT/$TOOLCHAIN/bin/ccache $CXX "\$@"
EOF

chmod +x $ROOT/$TOOLCHAIN/bin/host-g++
mkdir -p $ROOT/$TOOLCHAIN/lib/ccache
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/gcc
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/g++
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/${HOST_NAME}-gcc
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/${HOST_NAME}-g++
}
2 changes: 0 additions & 2 deletions packages/devel/make/package.mk
Expand Up @@ -32,8 +32,6 @@ PKG_LONGDESC="The 'make' utility automatically determines which pieces of a larg
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

export CC=$LOCAL_CC

post_makeinstall_host() {
ln -sf make $ROOT/$TOOLCHAIN/bin/gmake
}
31 changes: 3 additions & 28 deletions packages/lang/gcc/package.mk
Expand Up @@ -107,34 +107,9 @@ post_make_host() {
post_makeinstall_host() {
cp -PR $TARGET_NAME/libstdc++-v3/src/.libs/libstdc++.so* $SYSROOT_PREFIX/usr/lib

GCC_VERSION=`$ROOT/$TOOLCHAIN/bin/${TARGET_NAME}-gcc -dumpversion`
DATE="0501`echo $GCC_VERSION | sed 's/\([0-9]\)/0\1/g' | sed 's/\.//g'`"
CROSS_CC=${TARGET_PREFIX}gcc-${GCC_VERSION}
CROSS_CXX=${TARGET_PREFIX}g++-${GCC_VERSION}

rm -f ${TARGET_PREFIX}gcc

cat > ${TARGET_PREFIX}gcc <<EOF
#!/bin/sh
$ROOT/$TOOLCHAIN/bin/ccache $CROSS_CC "\$@"
EOF

chmod +x ${TARGET_PREFIX}gcc

# To avoid cache trashing
touch -c -t $DATE $CROSS_CC

[ ! -f "$CROSS_CXX" ] && mv ${TARGET_PREFIX}g++ $CROSS_CXX

cat > ${TARGET_PREFIX}g++ <<EOF
#!/bin/sh
$ROOT/$TOOLCHAIN/bin/ccache $CROSS_CXX "\$@"
EOF

chmod +x ${TARGET_PREFIX}g++

# To avoid cache trashing
touch -c -t $DATE $CROSS_CXX
mkdir -p $ROOT/$TOOLCHAIN/lib/ccache
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/${TARGET_NAME}-gcc
ln -sf $ROOT/$TOOLCHAIN/bin/ccache $ROOT/$TOOLCHAIN/lib/ccache/${TARGET_NAME}-g++
}

configure_target() {
Expand Down
4 changes: 1 addition & 3 deletions packages/linux/package.mk
Expand Up @@ -87,9 +87,7 @@ post_patch() {

cp $KERNEL_CFG_FILE $PKG_BUILD/.config

sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $ROOT/$TOOLCHAIN/bin/host-gcc|" \
-e "s|^HOSTCXX[[:space:]]*=.*$|HOSTCXX = $ROOT/$TOOLCHAIN/bin/host-g++|" \
-e "s|^ARCH[[:space:]]*?=.*$|ARCH = $TARGET_KERNEL_ARCH|" \
sed -i -e "s|^ARCH[[:space:]]*?=.*$|ARCH = $TARGET_KERNEL_ARCH|" \
-e "s|^CROSS_COMPILE[[:space:]]*?=.*$|CROSS_COMPILE = $TARGET_PREFIX|" \
$PKG_BUILD/Makefile

Expand Down
2 changes: 0 additions & 2 deletions packages/sysutils/busybox/package.mk
Expand Up @@ -36,12 +36,10 @@ PKG_AUTORECONF="no"

PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH CROSS_COMPILE= KBUILD_VERBOSE=1 install"
PKG_MAKE_OPTS_TARGET="ARCH=$TARGET_ARCH \
HOSTCC=$HOST_CC \
CROSS_COMPILE=$TARGET_PREFIX \
KBUILD_VERBOSE=1 \
install"
PKG_MAKE_OPTS_INIT="ARCH=$TARGET_ARCH \
HOSTCC=$HOST_CC \
CROSS_COMPILE=$TARGET_PREFIX \
KBUILD_VERBOSE=1 \
install"
Expand Down

0 comments on commit 6f7e2cc

Please sign in to comment.