forked from Lainports/freebsd-ports
75 lines
2.4 KiB
Bash
Executable file
75 lines
2.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
pb=/var/portbuild
|
|
|
|
if [ $# -ne 3 ]; then
|
|
echo "usage: makeparallel arch branch buildid"
|
|
exit 1
|
|
fi
|
|
|
|
arch=$1
|
|
branch=$2
|
|
buildid=$3
|
|
shift 3
|
|
|
|
. ${pb}/${arch}/portbuild.conf
|
|
. ${pb}/scripts/buildenv
|
|
|
|
buildid=$(resolve ${pb} ${arch} ${branch} ${buildid})
|
|
if [ -z "${buildid}" ]; then
|
|
echo "Invalid build ID ${buildid}"
|
|
exit 1
|
|
fi
|
|
|
|
builddir=${pb}/${arch}/${branch}/builds/${buildid}
|
|
|
|
buildenv ${pb} ${arch} ${branch} ${builddir}
|
|
|
|
# packages that take a long time to build or have very deep dependency
|
|
# trees and tend to stall the rest of the cluster waiting for them.
|
|
# We try to start these as early as possible.
|
|
|
|
quickports="lang/ghc x11/xorg x11/gnome2 x11/kde3 java/jdk14 java/jdk15 java/jdk16 editors/openoffice.org-2 editors/openoffice.org-2-RC editors/openoffice.org-2-devel editors/openoffice.org-3 editors/openoffice.org-3-RC editors/openoffice.org-3-devel"
|
|
|
|
cd ${PORTSDIR}
|
|
subdir=$(make -V SUBDIR)
|
|
makefile=${builddir}/Makefile
|
|
rm ${makefile}
|
|
|
|
SUBDIR=$(make -V SUBDIR)
|
|
(for dir in ${SUBDIR}; do
|
|
[ -r ${dir}/Makefile ] && echo "all: ${dir}-all" || true
|
|
done
|
|
env arch=${arch} branch=${branch} buildid=${buildid} awk -F '|' '{me=$1; here=$2; bdep=$8; rdep=$9
|
|
edep=$11; pdep=$12; fdep=$13
|
|
sufx=ENVIRON["PKGSUFFIX"]
|
|
arch=ENVIRON["arch"]
|
|
buildid=ENVIRON["buildid"]
|
|
branch=ENVIRON["branch"]
|
|
split(here, tmp, "/")
|
|
if (edep != "") { gsub("$", sufx, edep); gsub(" ", sufx " ", edep) }
|
|
if (pdep != "") { gsub("$", sufx, pdep); gsub(" ", sufx " ", pdep) }
|
|
if (fdep != "") { gsub("$", sufx, fdep); gsub(" ", sufx " ", fdep) }
|
|
if (bdep != "") { gsub("$", sufx, bdep); gsub(" ", sufx " ", bdep) }
|
|
if (rdep != "") { gsub("$", sufx, rdep); gsub(" ", sufx " ", rdep) }
|
|
print tmp[4] "-all: " me sufx
|
|
print me ": " me sufx
|
|
print me sufx ": " edep " " pdep " " fdep " " bdep " " rdep
|
|
printf("\t@/usr/bin/env XXX=\"\" ")
|
|
if (edep != "") printf(" ED=\"%s\"", edep)
|
|
if (pdep != "") printf(" PD=\"%s\"", pdep)
|
|
if (fdep != "") printf(" FD=\"%s\"", fdep)
|
|
if (bdep != "") printf(" BD=\"%s\"", bdep)
|
|
if (rdep != "") printf(" RD=\"%s\"", rdep)
|
|
printf(" /var/portbuild/scripts/pdispatch %s %s %s /var/portbuild/scripts/portbuild %s%s %s\n",
|
|
arch, branch, buildid, me, sufx, here)
|
|
}' < ${INDEXFILE}) > ${makefile}
|
|
|
|
for i in ${quickports}; do
|
|
if [ -d $i ]; then
|
|
quickpkg="$(cd $i; make package-name)${PKGSUFFIX}"
|
|
echo "quickports: $quickpkg" >> ${makefile}
|
|
else
|
|
echo "quick port directory \"$i\" does not exist -- skipping"
|
|
fi
|
|
done
|