1 2# Copyright (C) NGINX, Inc. 3 4 5shift 6 7for nxt_option; do 8 9 case "$nxt_option" in 10 -*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; 11 *) value="" ;; 12 esac 13 14 case "$nxt_option" in 15 --node=*) NXT_NODE="$value" ;; 16 --npm=*) NXT_NPM="$value" ;; 17 --node-gyp=*) NXT_NODE_GYP="$value" ;; 18 19 --help) 20 cat << END 21 22 --node=FILE set node executable 23 --npm=FILE set npm executable 24 --node-gyp=FILE set node-gyp executable 25 26END 27 exit 0 28 ;; 29 30 *) 31 echo 32 echo $0: error: invalid Node option \"$nxt_option\" 33 echo 34 exit 1 35 ;; 36 37 esac 38 39done 40 41 42if [ ! -f $NXT_AUTOCONF_DATA ]; then 43 echo 44 echo Please run common $0 before configuring module \"$nxt_module\". 45 echo 46 exit 1 47fi 48 49. $NXT_AUTOCONF_DATA 50 51 52NXT_NODE=${NXT_NODE=node} 53NXT_NPM=${NXT_NPM=npm} 54NXT_NODE_GYP=${NXT_NODE_GYP=node-gyp} 55 56 57$echo "configuring nodejs module" 58$echo "configuring nodejs module..." >> $NXT_AUTOCONF_ERR 59 60$echo -n "checking for node ..." 61$echo "checking for node ..." >> $NXT_AUTOCONF_ERR 62 63if /bin/sh -c "${NXT_NODE} -v" >> $NXT_AUTOCONF_ERR 2>&1; then 64 $echo " found" 65 66 NXT_NODE_VERSION="`${NXT_NODE} -v`" 67 $echo " + node version ${NXT_NODE_VERSION}" 68 69else 70 $echo " not found" 71 $echo 72 $echo $0: error: no Node found. 73 $echo 74 exit 1; 75fi 76 77 78$echo -n "checking for npm ..." 79$echo "checking for npm ..." >> $NXT_AUTOCONF_ERR 80 81if /bin/sh -c "${NXT_NPM} -v" >> $NXT_AUTOCONF_ERR 2>&1; then 82 $echo " found" 83 84 NXT_NPM_VERSION="`${NXT_NPM} -v`" 85 $echo " + npm version ${NXT_NPM_VERSION}" 86 87else 88 $echo " not found" 89 $echo 90 $echo $0: error: no npm found. 91 $echo 92 exit 1; 93fi 94 95 96$echo -n "checking for node-gyp ..." 97$echo "checking for node-gyp ..." >> $NXT_AUTOCONF_ERR 98 99if /bin/sh -c "${NXT_NODE_GYP} -v" >> $NXT_AUTOCONF_ERR 2>&1; then 100 $echo " found" 101 102 NXT_NODE_GYP_VERSION="`${NXT_NODE_GYP} -v`" 103 $echo " + node-gyp version ${NXT_NODE_GYP_VERSION}" 104 105else 106 $echo " not found" 107 $echo 108 $echo $0: error: no node-gyp found. 109 $echo 110 exit 1; 111fi 112 113if grep ^$NXT_NODE: $NXT_MAKEFILE 2>&1 > /dev/null; then 114 $echo 115 $echo $0: error: duplicate \"$NXT_NODE\" package configured. 116 $echo 117 exit 1; 118fi 119 120 121NXT_NODE_TMP=${NXT_BUILD_DIR}/src/${NXT_NODE}/unit-http 122NXT_NODE_TARBALL=${NXT_BUILD_DIR}/${NXT_NODE}-unit-http.tar.gz 123NXT_NODE_EXPORTS="export UNIT_SRC_PATH=${PWD}/src && \ 124 export UNIT_LIB_STATIC_PATH=${PWD}/${NXT_BUILD_DIR}/libunit.a" 125 126cat << END >> $NXT_MAKEFILE 127 128.PHONY: ${NXT_NODE} 129.PHONY: ${NXT_NODE}-copy 130.PHONY: ${NXT_NODE}-install 131.PHONY: ${NXT_NODE}-uninstall 132.PHONY: ${NXT_NODE}-local-install 133.PHONY: ${NXT_NODE}-build 134.PHONY: ${NXT_NODE}-publish 135 136 137${NXT_NODE}: ${NXT_NODE}-copy $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC 138 ${NXT_NODE_EXPORTS} && \\ 139 cd ${NXT_NODE_TMP} && ${NXT_NODE_GYP} configure build clean 140 141${NXT_NODE}-copy: 142 mkdir -p ${NXT_BUILD_DIR}/src/ 143 cp -rp src/nodejs/ ${NXT_BUILD_DIR}/src/${NXT_NODE} 144 145${NXT_NODE_TARBALL}: ${NXT_NODE}-copy 146 tar -zcvf ${NXT_NODE_TARBALL} -C ${NXT_NODE_TMP} . 147 148 149${NXT_NODE}-install: ${NXT_NODE_TARBALL} \ 150 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC 151 ${NXT_NODE_EXPORTS} && \\ 152 ${NXT_NPM} install -g ${PWD}/${NXT_NODE_TARBALL} 153 154${NXT_NODE}-uninstall: 155 ${NXT_NPM} uninstall -g unit-http 156 157${NXT_NODE}-local-install: ${NXT_NODE_TARBALL} \ 158 $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC 159 ${NXT_NODE_EXPORTS} && \\ 160 mkdir -p \$(DESTDIR) && \\ 161 cd \$(DESTDIR) && ${NXT_NPM} install ${PWD}/${NXT_NODE_TARBALL} 162 163 164${NXT_NODE}-build: ${NXT_NODE} 165 166${NXT_NODE}-publish: ${NXT_NODE} 167 cd ${NXT_NODE_TMP} && ${NXT_NPM} publish 168 169END 170