mirror of
https://github.com/danog/php.git
synced 2024-12-12 00:59:54 +01:00
70 lines
1.3 KiB
Plaintext
70 lines
1.3 KiB
Plaintext
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
cd /usr/src/php/ext
|
||
|
|
||
|
usage() {
|
||
|
echo "usage: $0 [-jN] ext-name [ext-name ...]"
|
||
|
echo " ie: $0 gd mysqli"
|
||
|
echo " $0 pdo pdo_mysql"
|
||
|
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:'
|
||
|
echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort)
|
||
|
}
|
||
|
|
||
|
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
|
||
|
|
||
|
exts=()
|
||
|
while [ $# -gt 0 ]; do
|
||
|
ext="$1"
|
||
|
shift
|
||
|
if [ -z "$ext" ]; then
|
||
|
continue
|
||
|
fi
|
||
|
if [ ! -d "$ext" ]; then
|
||
|
echo >&2 "error: $(pwd -P)/$ext does not exist"
|
||
|
echo >&2
|
||
|
usage >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
exts+=( "$ext" )
|
||
|
done
|
||
|
|
||
|
if [ "${#exts[@]}" -eq 0 ]; then
|
||
|
usage >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
for ext in "${exts[@]}"; do
|
||
|
(
|
||
|
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 --no-run-if-empty --verbose docker-php-ext-enable
|
||
|
make -j"$j" clean
|
||
|
)
|
||
|
done
|