1216Sigor@sysoev.ru 2216Sigor@sysoev.ru# Copyright (C) Max Romanov 3216Sigor@sysoev.ru# Copyright (C) NGINX, Inc. 4216Sigor@sysoev.ru 5216Sigor@sysoev.ru 6216Sigor@sysoev.rushift 7216Sigor@sysoev.ru 8216Sigor@sysoev.ruNXT_GO=go 9216Sigor@sysoev.ru 10216Sigor@sysoev.rufor nxt_option; do 11216Sigor@sysoev.ru 12216Sigor@sysoev.ru case "$nxt_option" in 13235Sigor@sysoev.ru -*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; 14216Sigor@sysoev.ru *) value="" ;; 15216Sigor@sysoev.ru esac 16216Sigor@sysoev.ru 17216Sigor@sysoev.ru case "$nxt_option" in 18216Sigor@sysoev.ru --go=*) NXT_GO="$value" ;; 19216Sigor@sysoev.ru --go-path=*) NXT_GO_PATH="$value" ;; 20216Sigor@sysoev.ru 21216Sigor@sysoev.ru --help) 22216Sigor@sysoev.ru cat << END 23216Sigor@sysoev.ru 24216Sigor@sysoev.ru --go=NAME set go executable 25216Sigor@sysoev.ru --go-path=PATH set GOPATH variable to install package 26216Sigor@sysoev.ru 27216Sigor@sysoev.ruEND 28216Sigor@sysoev.ru exit 0 29216Sigor@sysoev.ru ;; 30216Sigor@sysoev.ru 31216Sigor@sysoev.ru *) 32235Sigor@sysoev.ru echo 33235Sigor@sysoev.ru echo $0: error: invalid Go option \"$nxt_option\" 34235Sigor@sysoev.ru echo 35216Sigor@sysoev.ru exit 1 36216Sigor@sysoev.ru ;; 37216Sigor@sysoev.ru 38216Sigor@sysoev.ru esac 39216Sigor@sysoev.ru 40216Sigor@sysoev.rudone 41216Sigor@sysoev.ru 42216Sigor@sysoev.ru 43235Sigor@sysoev.ruif [ ! -f $NXT_AUTOCONF_DATA ]; then 44235Sigor@sysoev.ru echo 45235Sigor@sysoev.ru echo Please run common $0 before configuring module \"$nxt_module\". 46235Sigor@sysoev.ru echo 47235Sigor@sysoev.ru exit 1 48235Sigor@sysoev.rufi 49235Sigor@sysoev.ru 50235Sigor@sysoev.ru. $NXT_AUTOCONF_DATA 51235Sigor@sysoev.ru 52235Sigor@sysoev.ru 53216Sigor@sysoev.ru$echo "configuring Go package" 54216Sigor@sysoev.ru$echo "configuring Go package ..." >> $NXT_AUTOCONF_ERR 55216Sigor@sysoev.ru 56216Sigor@sysoev.ru$echo -n "checking for Go ..." 57216Sigor@sysoev.ru$echo "checking for Go ..." >> $NXT_AUTOCONF_ERR 58216Sigor@sysoev.ru 59216Sigor@sysoev.runxt_go_test="GOPATH=`pwd` CGO_CPPFLAGS=-DNXT_CONFIGURE \ 60216Sigor@sysoev.ru \"${NXT_GO}\" build -o build/nxt_go_gen.a --buildmode=c-archive nginext" 61216Sigor@sysoev.ru 62216Sigor@sysoev.ru 63216Sigor@sysoev.ruif /bin/sh -c "$nxt_go_test" >> $NXT_AUTOCONF_ERR 2>&1; then 64216Sigor@sysoev.ru $echo " found" 65216Sigor@sysoev.ru 66216Sigor@sysoev.ru NXT_GO_VERSION="`${NXT_GO} version`" 67216Sigor@sysoev.ru $echo " + ${NXT_GO_VERSION}" 68216Sigor@sysoev.ru 69216Sigor@sysoev.ruelse 70216Sigor@sysoev.ru $echo "----------" >> $NXT_AUTOCONF_ERR 71216Sigor@sysoev.ru $echo $nxt_go_test >> $NXT_AUTOCONF_ERR 72216Sigor@sysoev.ru $echo "----------" >> $NXT_AUTOCONF_ERR 73216Sigor@sysoev.ru $echo 74216Sigor@sysoev.ru $echo 75216Sigor@sysoev.ru $echo $0: error: no Go found. 76216Sigor@sysoev.ru $echo 77216Sigor@sysoev.ru exit 1; 78216Sigor@sysoev.rufi 79216Sigor@sysoev.ru 80216Sigor@sysoev.ru 81216Sigor@sysoev.ru 82*243Smax.romanov@nginx.comNXT_GO_PATH=${NXT_GO_PATH=`${NXT_GO} env GOPATH`} 83216Sigor@sysoev.ruNXT_GO_PATH=${NXT_GO_PATH:-`pwd`/${NXT_GO}} 84216Sigor@sysoev.ru 85216Sigor@sysoev.ru$echo " + Go package path: \"${NXT_GO_PATH}\"" 86216Sigor@sysoev.ru 87216Sigor@sysoev.ruif grep ^$NXT_GO: $NXT_MAKEFILE 2>&1 > /dev/null; then 88216Sigor@sysoev.ru $echo 89216Sigor@sysoev.ru $echo $0: error: duplicate \"$NXT_GO\" package configured. 90216Sigor@sysoev.ru $echo 91216Sigor@sysoev.ru exit 1; 92216Sigor@sysoev.rufi 93216Sigor@sysoev.ru 94216Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 95216Sigor@sysoev.ru 96216Sigor@sysoev.ru.PHONY: ${NXT_GO} 97216Sigor@sysoev.ru 98241Smax.romanov@nginx.comall: ${NXT_GO} 99241Smax.romanov@nginx.com 100216Sigor@sysoev.ruNXT_ROOT = `pwd` 101216Sigor@sysoev.ru 102216Sigor@sysoev.ruGOPATH = $NXT_GO_PATH 103*243Smax.romanov@nginx.comGOOS = `${NXT_GO} env GOOS` 104*243Smax.romanov@nginx.comGOARCH = `${NXT_GO} env GOARCH` 105216Sigor@sysoev.ru 106216Sigor@sysoev.ru${NXT_GO}: 107216Sigor@sysoev.ru install -d \$(GOPATH)/src/nginext 108216Sigor@sysoev.ru install -p ./src/nginext/*.c ./src/nginext/*.h \\ 109216Sigor@sysoev.ru ./src/nginext/*.go \$(GOPATH)/src/nginext/ 110216Sigor@sysoev.ru CGO_CFLAGS="-I\$(NXT_ROOT)/build -I\$(NXT_ROOT)/src" \\ 111242Smax.romanov@nginx.com CGO_LDFLAGS="-L\$(NXT_ROOT)/build ${NXT_LIBRT}" \\ 112216Sigor@sysoev.ru GOPATH=$NXT_GO_PATH \\ 113*243Smax.romanov@nginx.com ${NXT_GO} install -v nginext 114216Sigor@sysoev.ru 115216Sigor@sysoev.ru${NXT_GO}-uninstall: 116216Sigor@sysoev.ru rm -rf \$(GOPATH)/src/nginext 117216Sigor@sysoev.ru rm -f \$(GOPATH)/pkg/\$(GOOS)_\$(GOARCH)/nginext.a 118216Sigor@sysoev.ru 119216Sigor@sysoev.ruEND 120