index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Que Quotion <quequotion@gmail.com> | 2018-11-27 18:23:02 +0900 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2018-11-27 22:48:43 +1000 |
commit | 508b4e3ec0cb3e365942f4dc0626edda4789932b (patch) | |
tree | d47fd87b0ba310da989e45423180c4fda2610957 /scripts/libmakepkg/buildenv/compiler.sh.in | |
parent | 0bb04fa16a82db133dd010478c1256bc8500c5e7 (diff) |
-rw-r--r-- | scripts/libmakepkg/buildenv/compiler.sh.in | 55 |
diff --git a/scripts/libmakepkg/buildenv/compiler.sh.in b/scripts/libmakepkg/buildenv/compiler.sh.in new file mode 100644 index 00000000..245c8a76 --- /dev/null +++ b/scripts/libmakepkg/buildenv/compiler.sh.in @@ -0,0 +1,55 @@ +#!/usr/bin/bash +# +# compiler.sh - CCache and DistCC compilation +# ccache - Cache compilations and reuse them to save time on repetitions +# distcc - Distribute compilation of C and C++ across machines +# +# Copyright (c) 2007-2018 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_COMPILER_SH" ]] && return +LIBMAKEPKG_BUILDENV_COMPILER_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/option.sh" + +build_options+=('ccache' 'distcc') +buildenv_functions+=('buildenv_ccache' 'buildenv_distcc') + +using_ccache=0 + +buildenv_ccache() { + if check_buildoption "ccache" "y"; then + if [ -d /usr/lib/ccache/bin ]; then + export PATH="/usr/lib/ccache/bin:$PATH" + using_ccache=1 + fi + fi +} + +buildenv_distcc() { + if check_buildoption "distcc" "y"; then + if (( using_ccache )); then + export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc" + export CCACHE_BASEDIR="$srcdir" + elif [[ -d /usr/lib/distcc/bin ]]; then + export PATH="/usr/lib/distcc/bin:$PATH" + fi + + export DISTCC_HOSTS + fi +} |