#!/bin/sh 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= for ext; do 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="$exts $ext" done if [ -z "$exts" ]; then usage >&2 exit 1 fi : ${PHPIZE_DEPS:="autoconf file g++ gcc libc-dev make pkgconf re2c"} if [ -e /lib/apk/db/installed ]; then apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS 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 -r docker-php-ext-enable make -j"$j" clean ) done if [ -e /lib/apk/db/installed ]; then apk del .phpize-deps fi