2017-05-17 3 views
0

私はMakefileをやって使用することが、私は条件付きの文章でそれを使用するための$ varの値を返すことはできませんか。

#!/bin/sh 

GO=$(shell) go 
GOPATH=$(GO) env GOPATH 

make: 
    @$(GOPATH) 
    @if [ ! -d "$(GOPATH)/bin" ]; then mkdir -p "$(GOPATH)/bin" ; fi 

私はmake@$GOPATH戻っ/home/icvallejo/goが、後を入力すると、私はそれを使用する方法がわかりません(私はそれを行うことはできません)の場合、makeはこれを返します:

if [! -d "go env GOPATH/bin"];次にmkdir -p "go env GOPATH/bin"; fi

私を助けてもらえますか?

+0

「go」とは「GOPATH」です。 – igagis

+0

$ go env GOPATHを実行してGOPATH(golang)を取得し、$ GOPATHに保持します。実際、 'gmake'では動作しますが、' make 'では動作しません。 – icarbajo

答えて

0
#!/bin/sh 

GO := go 
GOPATH := $(shell $(GO) env GOPATH) 

make: 
    @echo $(GOPATH) 
    @if [ ! -d "$(GOPATH)/bin" ]; then mkdir -p "$(GOPATH)/bin" ; fi 
+1

GNU make 'gmake'でのみ動作します。 – icarbajo

関連する問題