buildgcc: Make package build() function more versatile
Refactor build() to make things more flexible: Add a parameter that tells if we build a package for the host or for a target architecture. This is just passed to the build_$package() function and can be used later to take different steps in each case (e.g. for bootstrapping a host gcc). Move .success files into the destination directory. That way we can tell that a package has been built even if the package build directory has been removed. Change-Id: I52a7245714a040d11f6e1ac8bdbff8057bb7f0a1 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/13471 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
b2213edc65
commit
11ea2b378b
|
@ -296,39 +296,57 @@ package_uses_targetarch()
|
|||
fi
|
||||
}
|
||||
|
||||
build() {
|
||||
generic_build()
|
||||
{
|
||||
package=$1
|
||||
host_target=$2
|
||||
builddir=$3
|
||||
success=$4
|
||||
|
||||
fn_exists build_$package || return
|
||||
|
||||
version="$(eval echo \$$package"_VERSION")"
|
||||
package_uses_targetarch "$package" && \
|
||||
BUILDDIR=build-${TARGETARCH}-$package || \
|
||||
BUILDDIR=build-$package
|
||||
|
||||
mkdir -p ${BUILDDIR}
|
||||
mkdir -p "$builddir"
|
||||
|
||||
is_package_enabled "$package" && \
|
||||
if [ -f ${BUILDDIR}/.success ]; then
|
||||
if [ -f "$success" ]; then
|
||||
printf "Skipping $package as it is already built\n"
|
||||
else
|
||||
printf "Building $package $version ... "
|
||||
DIR=$PWD
|
||||
cd ${BUILDDIR}
|
||||
DIR="$PWD"
|
||||
cd "$builddir"
|
||||
rm -f .failed
|
||||
build_${package} > build.log 2>&1
|
||||
cd $DIR/${BUILDDIR}
|
||||
if [ ! -f .failed ]; then touch .success; fi
|
||||
cd ..
|
||||
|
||||
if [ -r "${BUILDDIR}/.failed" ]; then
|
||||
printf "${RED}failed${NC}. Check ${BUILDDIR}/build.log.\n"
|
||||
build_${package} $host_target > build.log 2>&1
|
||||
cd "$DIR"
|
||||
if [ ! -f "$builddir/.failed" ]; then
|
||||
touch "$success";
|
||||
else
|
||||
printf "${RED}failed${NC}. Check $builddir/build.log.\n"
|
||||
exit 1
|
||||
fi
|
||||
printf "${green}ok${NC}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
build_for_host()
|
||||
{
|
||||
generic_build $1 host build-$1 "${TARGETDIR}/.$1.success"
|
||||
}
|
||||
|
||||
build_for_target()
|
||||
{
|
||||
generic_build $1 target build-${TARGETARCH}-$1 "${TARGETDIR}/.${TARGETARCH}-$1.success"
|
||||
}
|
||||
|
||||
build()
|
||||
{
|
||||
if package_uses_targetarch $1; then
|
||||
build_for_target $1
|
||||
else
|
||||
build_for_host $1
|
||||
fi
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
if [ $SAVETEMPS -ne 0 ]; then
|
||||
|
|
Loading…
Reference in New Issue