Skip to content

Instantly share code, notes, and snippets.

@lnznt
Created November 30, 2014 00:45
Show Gist options
  • Save lnznt/fa113c847266580da6ca to your computer and use it in GitHub Desktop.
Save lnznt/fa113c847266580da6ca to your computer and use it in GitHub Desktop.
[bash function] change environment variable CC/CXX (.bashrc)
function chcc {
case "$1" in
--unset) unset CC ; unset CXX ;;
clang) export CC=clang ; export CXX=clang++ ;;
gcc) export CC=gcc ; export CXX=g++ ;;
distcc) export CC=distcc ; export CXX=distcc ;;
llvm-gcc) export CC=llvm-gcc ; export CXX=llvm-g++- ;;
llvm-gcc-4.8) export CC=llvm-gcc-4.8 ; export CXX=llvm-g++-4.8 ;;
arm) export CC=arm-linux-gnueabi-gcc ; export CXX=arm-linux-gnueabi-g++ ;;
armhf) export CC=arm-linux-gnueabihf-gcc ; export CXX=arm-linux-gnueabihf-g++ ;;
mingw64) export CC=x86_64-w64-mingw32-gcc ; export CXX=x86_64-w64-mingw32-g++ ;;
# ex) chcc -m32
-*) [ "$CC" = "" ] || export CC="$CC $1"
;;
/*) local option=$( echo "$1" | sed 's/./-/' )
[ "$CXX" = "" ] || export CXX="$CC $option"
;;
# ex) chcc +ccache
+*) local prefix=$( echo "$1" | sed 's/.//' )
[ "$CC" = "" ] || export CC="$prefix $CC"
[ "$CXX" = "" ] || export CXX="$prefix $CXX"
;;
"") ;;
*) echo "invalid argument: '$1'" 1>&2 ;;
esac
echo "CC=$CC"
echo "CXX=$CXX"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment