608e09e9de
This also eliminates expressions that incompatible with BSD make, thus fixing installation of Node.js module on FreeBSD (broken by dace60fc4926).
199 lines
4.9 KiB
Text
199 lines
4.9 KiB
Text
|
|
# Copyright (C) NGINX, Inc.
|
|
|
|
|
|
shift
|
|
|
|
for nxt_option; do
|
|
|
|
case "$nxt_option" in
|
|
-*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
*) value="" ;;
|
|
esac
|
|
|
|
case "$nxt_option" in
|
|
--node=*) NXT_NODE="$value" ;;
|
|
--npm=*) NXT_NPM="$value" ;;
|
|
--node-gyp=*) NXT_NODE_GYP="$value" ;;
|
|
--local=*) NXT_NODE_LOCAL="$value" ;;
|
|
|
|
--help)
|
|
cat << END
|
|
|
|
--node=FILE set node executable
|
|
--npm=FILE set npm executable
|
|
--node-gyp=FILE set node-gyp executable
|
|
--local=DIRECTORY set directory path for local installation
|
|
|
|
END
|
|
exit 0
|
|
;;
|
|
|
|
*)
|
|
echo
|
|
echo $0: error: invalid Node option \"$nxt_option\"
|
|
echo
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
if [ ! -f $NXT_AUTOCONF_DATA ]; then
|
|
echo
|
|
echo Please run common $0 before configuring module \"$nxt_module\".
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
. $NXT_AUTOCONF_DATA
|
|
|
|
|
|
NXT_NODE=${NXT_NODE=node}
|
|
NXT_NPM=${NXT_NPM=npm}
|
|
NXT_NODE_GYP=${NXT_NODE_GYP=node-gyp}
|
|
NXT_NODE_LOCAL=${NXT_NODE_LOCAL=}
|
|
|
|
|
|
$echo "configuring nodejs module"
|
|
$echo "configuring nodejs module..." >> $NXT_AUTOCONF_ERR
|
|
|
|
$echo -n "checking for node ..."
|
|
$echo "checking for node ..." >> $NXT_AUTOCONF_ERR
|
|
|
|
if /bin/sh -c "${NXT_NODE} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
|
$echo " found"
|
|
|
|
NXT_NODE_VERSION="`${NXT_NODE} -v`"
|
|
$echo " + node version ${NXT_NODE_VERSION}"
|
|
|
|
else
|
|
$echo " not found"
|
|
$echo
|
|
$echo $0: error: no Node found.
|
|
$echo
|
|
exit 1;
|
|
fi
|
|
|
|
|
|
$echo -n "checking for npm ..."
|
|
$echo "checking for npm ..." >> $NXT_AUTOCONF_ERR
|
|
|
|
if /bin/sh -c "${NXT_NPM} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
|
$echo " found"
|
|
|
|
NXT_NPM_VERSION="`${NXT_NPM} -v`"
|
|
$echo " + npm version ${NXT_NPM_VERSION}"
|
|
|
|
else
|
|
$echo " not found"
|
|
$echo
|
|
$echo $0: error: no npm found.
|
|
$echo
|
|
exit 1;
|
|
fi
|
|
|
|
|
|
$echo -n "checking for node-gyp ..."
|
|
$echo "checking for node-gyp ..." >> $NXT_AUTOCONF_ERR
|
|
|
|
if /bin/sh -c "${NXT_NODE_GYP} -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
|
$echo " found"
|
|
|
|
NXT_NODE_GYP_VERSION="`${NXT_NODE_GYP} -v`"
|
|
$echo " + node-gyp version ${NXT_NODE_GYP_VERSION}"
|
|
|
|
else
|
|
$echo " not found"
|
|
$echo
|
|
$echo $0: error: no node-gyp found.
|
|
$echo
|
|
exit 1;
|
|
fi
|
|
|
|
if grep ^$NXT_NODE: $NXT_MAKEFILE 2>&1 > /dev/null; then
|
|
$echo
|
|
$echo $0: error: duplicate \"$NXT_NODE\" package configured.
|
|
$echo
|
|
exit 1;
|
|
fi
|
|
|
|
|
|
NXT_NODE_TMP=${NXT_BUILD_DIR}/src/${NXT_NODE}/unit-http
|
|
NXT_NODE_TARBALL=${NXT_BUILD_DIR}/${NXT_NODE}-unit-http.tar.gz
|
|
NXT_NODE_VERSION_FILE=${NXT_NODE_TMP}/version.h
|
|
NXT_NODE_EXPORTS="export UNIT_SRC_PATH=${PWD}/src \
|
|
&& export UNIT_BUILD_PATH=${PWD}/${NXT_BUILD_DIR} \
|
|
&& export UNIT_LIB_STATIC_PATH=${PWD}/${NXT_BUILD_DIR}/libunit.a"
|
|
|
|
if [ -n "$NXT_NODE_LOCAL" ]; then
|
|
NXT_NODE_INSTALL=local-install
|
|
else
|
|
NXT_NODE_INSTALL=install
|
|
fi
|
|
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
.PHONY: ${NXT_NODE}
|
|
.PHONY: ${NXT_NODE}-copy
|
|
.PHONY: ${NXT_NODE}-install
|
|
.PHONY: ${NXT_NODE}-uninstall
|
|
.PHONY: ${NXT_NODE}-local-check
|
|
.PHONY: ${NXT_NODE}-local-install
|
|
.PHONY: ${NXT_NODE}-build
|
|
.PHONY: ${NXT_NODE}-publish
|
|
|
|
${NXT_NODE}: ${NXT_NODE}-copy $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
|
${NXT_NODE_EXPORTS} && \\
|
|
cd ${NXT_NODE_TMP} && ${NXT_NODE_GYP} configure build clean
|
|
|
|
${NXT_NODE}-copy: ${NXT_NODE_VERSION_FILE}
|
|
mkdir -p ${NXT_BUILD_DIR}/src/
|
|
cp -rp src/nodejs/* ${NXT_BUILD_DIR}/src/${NXT_NODE}
|
|
|
|
${NXT_NODE_VERSION_FILE}: ${NXT_VERSION_H}
|
|
mkdir -p ${NXT_NODE_TMP}
|
|
$echo '#define NXT_NODE_VERNUM \$(NXT_VERNUM)' > $NXT_NODE_VERSION_FILE
|
|
|
|
${NXT_NODE_TARBALL}: ${NXT_NODE}-copy
|
|
sed -e 's/"version"\s*:.*/"version": "\$(NXT_VERSION).0",/' \
|
|
${NXT_NODE_TMP}/package.json > ${NXT_NODE_TMP}/package.json.tmp
|
|
mv ${NXT_NODE_TMP}/package.json.tmp ${NXT_NODE_TMP}/package.json
|
|
tar -zcvf ${NXT_NODE_TARBALL} -C ${NXT_NODE_TMP} .
|
|
|
|
|
|
install: ${NXT_NODE}-$NXT_NODE_INSTALL
|
|
|
|
${NXT_NODE}-install: ${NXT_NODE_TARBALL} \
|
|
$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
|
${NXT_NODE_EXPORTS} && \\
|
|
${NXT_NPM} install -g --unsafe-perm ${PWD}/${NXT_NODE_TARBALL}
|
|
|
|
${NXT_NODE}-uninstall:
|
|
${NXT_NPM} uninstall -g unit-http
|
|
|
|
${NXT_NODE}-local-check:
|
|
@test -n "\$(DESTDIR)$NXT_NODE_LOCAL" \\
|
|
|| (echo; \\
|
|
echo "error: to make ${NXT_NODE}-local-install you need either"; \\
|
|
echo " to configure --local option"; \\
|
|
echo " or to set DESTDIR environment variable."; \\
|
|
echo; \\
|
|
exit 1)
|
|
|
|
${NXT_NODE}-local-install: ${NXT_NODE_TARBALL} ${NXT_NODE}-local-check \
|
|
$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC
|
|
${NXT_NODE_EXPORTS} && \\
|
|
mkdir -p \$(DESTDIR)${NXT_NODE_LOCAL} && \\
|
|
cd \$(DESTDIR)${NXT_NODE_LOCAL} && \\
|
|
${NXT_NPM} install ${PWD}/${NXT_NODE_TARBALL}
|
|
|
|
|
|
${NXT_NODE}-build: ${NXT_NODE}
|
|
|
|
${NXT_NODE}-publish: ${NXT_NODE}
|
|
cd ${NXT_NODE_TMP} && ${NXT_NPM} publish
|
|
|
|
END
|