Enable parallel compilation for many pecl extensions

Test: amqp, bcmath, bz2, calendar, exif, gd, gettext, grpc, imagick, intl, mysqli, opcache, pcntl, pdo_mysql, protobuf, redis, soap, sockets, tidy, xdebug, xsl, yaml, zip
pull/160/head
Michele Locati 2020-08-19 16:45:41 +02:00
parent 0236caf3f7
commit e39841af1b
No known key found for this signature in database
GPG Key ID: 98B7CE2E7234E28B
1 changed files with 18 additions and 1 deletions

View File

@ -759,6 +759,23 @@ expandPackagesToBeInstalled() {
printf '%s' "${expandPackagesToBeInstalled_result# }" printf '%s' "${expandPackagesToBeInstalled_result# }"
} }
# Retrieve the number of processors to be used when compiling an extension
#
# Arguments:
# $1: the handle of the PHP extension to be compiled
# Output:
# The number of processors to be used
getCompilationProcessorCount() {
case "$1" in
amqp | bcmath | bz2 | calendar | exif | gd | gettext | grpc | imagick | intl | mysqli | opcache | pcntl | pdo_mysql | protobuf | redis | soap | sockets | tidy | xdebug | xsl | yaml | zip)
nproc
;;
*)
echo 1
;;
esac
}
# Install the required APT/APK packages # Install the required APT/APK packages
# #
# Arguments: # Arguments:
@ -1339,7 +1356,7 @@ installPECLModule() {
printf ' (installing version %s)\n' "$installPECLModule_actual" printf ' (installing version %s)\n' "$installPECLModule_actual"
fi fi
pecl channel-update pecl.php.net || true pecl channel-update pecl.php.net || true
printf "$installPECLModule_stdin" | pecl install "$installPECLModule_actual" printf "$installPECLModule_stdin" | MAKE="make -j$(getCompilationProcessorCount $1)" pecl install "$installPECLModule_actual"
fi fi
case "$1" in case "$1" in
apcu_bc) apcu_bc)