sys-devel/icecream: add missing files

Package-Manager: Portage-2.3.89, Repoman-2.3.20
This commit is contained in:
Xenhat Hex 2020-04-25 01:32:22 -04:00
parent b143aa316f
commit 23fa114c18
No known key found for this signature in database
GPG Key ID: 03FE57ED1424AB4D
4 changed files with 238 additions and 0 deletions

View File

@ -0,0 +1,43 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
need net
}
start() {
local basedir=${ICECREAM_BASEDIR:-"/var/cache/icecream"}
local netname=${ICECREAM_NETNAME:+"-n ${ICECREAM_NETNAME}"}
local logfile=${ICECREAM_LOG_FILE:+"-l ${ICECREAM_LOG_FILE}"}
local nice=${ICECREAM_NICE_LEVEL:+"--nice ${ICECREAM_NICE_LEVEL}"}
local scheduler=${ICECREAM_SCHEDULER_HOST:+"-s ${ICECREAM_SCHEDULER_HOST}"}
local maxjobs=${ICECREAM_MAX_JOBS:+"-m ${ICECREAM_MAX_JOBS}"}
local verbosity=${ICECREAM_VERBOSITY:-"-v"}
if [[ "${ICECREAM_RUN_SCHEDULER}" == "yes" ]]; then
local slogfile=${ICECREAM_SCHEDULER_LOG_FILE:-"/var/log/icecc_scheduler"}
touch ${slogfile} && chown icecream:icecream ${slogfile}
slogfile=${slogfile:+"-l ${slogfile}"}
ebegin "Starting Distributed Compiler Scheduler"
start-stop-daemon -u icecream --start --quiet --exec /usr/sbin/scheduler -- -d ${slogfile} ${netname} ${verbosity}
eend ${?}
fi
[[ ! -d ${basedir} ]] && mkdir -p ${basedir} && chown icecream:icecream ${basedir}
ebegin "Starting Distributed Compiler Daemon"
start-stop-daemon --start --quiet --exec /usr/sbin/iceccd -- -d ${logfile} ${nice} ${scheduler} ${netname} -u icecream -b "${basedir}" ${maxjobs} ${verbosity}
eend ${?}
}
stop() {
ebegin "Stopping Distributed Compiler Daemon"
start-stop-daemon --stop --quiet --name iceccd
eend ${?}
if [[ "${ICECREAM_RUN_SCHEDULER}" == "yes" ]]; then
ebegin "Stopping Distributed Compiler Scheduler"
start-stop-daemon --stop --quiet --name scheduler
eend ${?}
fi
}

View File

@ -0,0 +1,69 @@
#!/bin/sh
#
# icecream-config - helper script for icecream and its ebuild
#
# Copyright 2003-2010 Superlucidity Services, LLC
# This program licensed under the GNU GPL version 2.
#
# This script developed by Zachary T Welch at Superlucidity Services, LLC
# it was cloned from the distcc-config script to make ccache-config
# and then modified by Marcus Furlong to configure icecream too.
#
# Additional features to come; this provides a starting point
# this should be getopt'd someday (override with ICEC_QUIET=1)
ICECC_VERBOSE=1
icecc_echo() {
[ -z "${ICECC_QUIET}" -a -n "${ICECC_VERBOSE}" ] && echo "$*"
}
###
# the following functions manage the icecream symlinks
# they allow the user or other scripts (namely gcc-config) to
# automatically update icecream's links when upgrading toolchains
#
icecc_remove_link() {
local t="/usr/lib/icecc/bin/${1}"
if [ -L ${t} ]; then
icecc_echo "Removing ${t}..."
rm -f "${t}"
fi
}
icecc_install_link() {
# Search the PATH for the specified compiler
# then create shadow link in /usr/lib/icecc/bin to icecc
if [ -n "$(type -p ${1})" ]; then
# first be sure any old link is removed
ICECC_QUIET=1 icecc_remove_link "${1}"
# then create the new link
local t="/usr/lib/icecc/bin/${1}"
icecc_echo "Creating icecream shadow link: ${t}..."
ln -s /usr/bin/icecc "${t}"
fi
}
icecc_links() {
local a
for a in gcc cc c++ g++ ; do
[ -n "${2}" ] && a="${2}-${a}"
eval "icecc_${1}_link" "${a}"
done
}
###
# main routine
case "${1}" in
--install-links )
icecc_links install "${2}"
;;
--remove-links )
icecc_links remove "${2}"
;;
* )
echo "usage: ${0} {--install-links|--remove-links} [ CHOST ]"
;;
esac

View File

@ -0,0 +1,82 @@
#!/bin/sh
#
# icecream-create-env - helper script to create icecc environments(mostly for cross-compiling)
#
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# Please note, this script has been designed to work with Gentoo's crossdev, it may or may
# not work with cross-toolchains that were build differently.
#
#
# Usage: "./icecream-create-env" creates a native environment(similar to icecc --build-native)
# "./icecream-create-env prefix" creates a cross-compile environment using the cross-toolchain created by crossdev
# Example:
# "emerge crossdev && crossdev -t sparc-unknown-linux-gnu && icecream-create-env sparc-unknown-linux"
if [ `id -u` -ne 0 ]
then
echo "Only the superuser can execute this script."
exit 1
fi
# param 1 = CHOST
prefix="${1}"
if [ -z "${prefix}" ]
then
prefix="`gcc -dumpmachine`"
fi
gccbin=`which ${prefix}-gcc 2>/dev/null`
if [ ! -e "${gccbin}" ]
then
echo "Can't find ${prefix}-gcc!"
exit 1
fi
gxxbin=`which ${prefix}-g++ 2>/dev/null`
if [ ! -e "${gxxbin}" ]
then
echo "Can't find ${prefix}-g++!"
exit 2
fi
version="`${prefix}-gcc -dumpversion`"
tmpdir=`mktemp -d`
tmpfile=`mktemp`
target=`gcc -dumpmachine`
if [ "x${target}" = "x${prefix}" ]
then
/usr/libexec/icecc/icecc-create-env \
/usr/${prefix}/gcc-bin/${version}/gcc \
/usr/${prefix}/gcc-bin/${version}/g++ \
| tee ${tmpfile}
else
/usr/libexec/icecc/icecc-create-env \
/usr/${target}/${prefix}/gcc-bin/${version}/${prefix}-gcc \
/usr/${target}/${prefix}/gcc-bin/${version}/${prefix}-g++ \
| tee ${tmpfile}
fi
# figure out the name of the archive
icecc_envname=`grep "creating" ${tmpfile} | awk '{print $2}'`
echo "Testing icecc environment..."
tar -x -z -f ${icecc_envname} -C ${tmpdir}
touch ${tmpdir}/empty.c
chroot ${tmpdir}/ /usr/bin/gcc -c /empty.c
tested=${?}
rm ${tmpdir}/empty.c
if [ "${tested}" -ne 0 ]
then
echo ""
echo "Creating icecc environment failed. Please see error message(s) above! The temporary directory is: ${tmpdir}/"
else
echo ""
echo "Icecc environment has been created. It has been saved as ${icecc_envname}!"
fi

View File

@ -0,0 +1,44 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
need net
}
start() {
local basedir=${ICECREAM_BASEDIR:-"/var/cache/icecream"}
local netname=${ICECREAM_NETNAME:+"-n ${ICECREAM_NETNAME}"}
local logfile=${ICECREAM_LOG_FILE:+"-l ${ICECREAM_LOG_FILE}"}
local nice=${ICECREAM_NICE_LEVEL:+"--nice ${ICECREAM_NICE_LEVEL}"}
local scheduler=${ICECREAM_SCHEDULER_HOST:+"-s ${ICECREAM_SCHEDULER_HOST}"}
local maxjobs=${ICECREAM_MAX_JOBS:+"-m ${ICECREAM_MAX_JOBS}"}
local verbosity=${ICECREAM_VERBOSITY:-"-v"}
[[ ! -d /var/log/icecream/ ]] && mkdir -p /var/log/icecream/ && chown icecream:icecream /var/log/icecream/
if [[ "${ICECREAM_RUN_SCHEDULER}" == "yes" ]]; then
local slogfile=${ICECREAM_SCHEDULER_LOG_FILE:-"/var/log/icecc_scheduler"}
touch ${slogfile} && chown icecream:icecream ${slogfile}
slogfile=${slogfile:+"-l ${slogfile}"}
ebegin "Starting Distributed Compiler Scheduler"
start-stop-daemon -u icecream --start --quiet --exec /usr/sbin/icecc-scheduler -- -d ${slogfile} ${netname} ${verbosity}
eend ${?}
fi
[[ ! -d ${basedir} ]] && mkdir -p ${basedir} && chown icecream:icecream ${basedir}
ebegin "Starting Distributed Compiler Daemon"
start-stop-daemon --start --quiet --exec /usr/sbin/iceccd -- -d ${logfile} ${nice} ${scheduler} ${netname} -u icecream -b "${basedir}" ${maxjobs} ${verbosity}
eend ${?}
}
stop() {
ebegin "Stopping Distributed Compiler Daemon"
start-stop-daemon --stop --quiet --name iceccd
eend ${?}
if [[ "${ICECREAM_RUN_SCHEDULER}" == "yes" ]]; then
ebegin "Stopping Distributed Compiler Scheduler"
start-stop-daemon --stop --quiet --name icecc-scheduler
eend ${?}
fi
}