php/7.0/fpm/docker-php-ext-install

114 lines
2.0 KiB
Plaintext
Raw Normal View History

2016-03-18 18:52:43 +01:00
#!/bin/sh
set -e
2016-08-09 23:32:13 +02:00
srcExists=
if [ -d /usr/src/php ]; then
srcExists=1
fi
docker-php-source extract
if [ -z "$srcExists" ]; then
touch /usr/src/php/.docker-delete-me
fi
cd /usr/src/php/ext
usage() {
2015-12-09 20:11:53 +01:00
echo "usage: $0 [-jN] ext-name [ext-name ...]"
echo " ie: $0 gd mysqli"
echo " $0 pdo pdo_mysql"
2015-12-09 20:11:53 +01:00
echo " $0 -j5 gd mbstring mysqli pdo pdo_mysql shmop"
echo
echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure'
echo
echo 'Possible values for ext-name:'
2016-08-09 23:32:13 +02:00
find . \
-mindepth 2 \
-maxdepth 2 \
-type f \
-name 'config.m4' \
| xargs -n1 dirname \
| xargs -n1 basename \
| sort \
| xargs
}
2015-12-09 20:11:53 +01:00
opts="$(getopt -o 'h?j:' --long 'help,jobs:' -- "$@" || { usage >&2 && false; })"
eval set -- "$opts"
j=1
while true; do
flag="$1"
shift
case "$flag" in
--help|-h|'-?') usage && exit 0 ;;
--jobs|-j) j="$1" && shift ;;
--) break ;;
*)
{
echo "error: unknown flag: $flag"
usage
} >&2
exit 1
;;
esac
done
2016-03-18 18:52:43 +01:00
exts=
for ext; do
if [ -z "$ext" ]; then
continue
fi
2016-08-09 23:32:13 +02:00
if [ ! -d "$ext" ]; then
echo >&2 "error: $PWD/$ext does not exist"
echo >&2
usage >&2
exit 1
fi
2016-03-18 18:52:43 +01:00
exts="$exts $ext"
done
2016-03-18 18:52:43 +01:00
if [ -z "$exts" ]; then
usage >&2
exit 1
fi
pm='unknown'
if [ -e /lib/apk/db/installed ]; then
pm='apk'
fi
apkDel=
if [ "$pm" = 'apk' ]; then
if [ -n "$PHPIZE_DEPS" ]; then
if apk info --installed .phpize-deps-configure > /dev/null; then
apkDel='.phpize-deps-configure'
elif ! apk info --installed .phpize-deps > /dev/null; then
apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS
apkDel='.phpize-deps'
fi
fi
2016-05-20 16:17:45 +02:00
fi
2016-12-06 20:51:38 +01:00
popDir="$PWD"
2016-03-18 18:52:43 +01:00
for ext in $exts; do
2016-12-06 20:55:48 +01:00
cd "$ext"
[ -e Makefile ] || docker-php-ext-configure "$ext"
make -j"$j"
make -j"$j" install
find modules \
-maxdepth 1 \
-name '*.so' \
-exec basename '{}' ';' \
| xargs -r docker-php-ext-enable
make -j"$j" clean
cd "$popDir"
done
2016-05-20 16:17:45 +02:00
if [ "$pm" = 'apk' ] && [ -n "$apkDel" ]; then
apk del $apkDel
2016-05-20 16:17:45 +02:00
fi
2016-08-09 23:32:13 +02:00
if [ -e /usr/src/php/.docker-delete-me ]; then
docker-php-source delete
fi