@ -1,34 +1,36 @@
i f n d e f G O O S
GOOS := $( word 1, $( subst /, " " , $( word 4, $( shell go version) ) ) )
GOOS := $( word 1, $( subst /, " " , $( word 4, $( shell go version) ) ) )
e n d i f
MAKEFILE := $( realpath $( lastword $( MAKEFILE_LIST) ) )
ROOT_DIR := $( shell dirname $( MAKEFILE) )
GOPATH := $( ROOT_DIR) /gopath
SRC_LINK := $( GOPATH) /src/github.com/junegunn/fzf/src
VENDOR_LINK := $( GOPATH) /src/github.com/junegunn/fzf/vendor
MAKEFILE := $( realpath $( lastword $( MAKEFILE_LIST) ) )
ROOT_DIR := $( shell dirname $( MAKEFILE) )
GOPATH := $( ROOT_DIR) /gopath
SRC_LINK := $( GOPATH) /src/github.com/junegunn/fzf/src
VENDOR_LINK := $( GOPATH) /src/github.com/junegunn/fzf/vendor
export GOPATH
GLIDE_YAML := glide.yaml
GLIDE_LOCK := glide.lock
SOURCES := $( wildcard *.go src/*.go src/*/*.go) $( SRC_LINK) $( VENDOR_LINK) $( GLIDE_LOCK) $( MAKEFILE)
REVISION := $( shell git log -n 1 --pretty= format:%h -- $( SOURCES) )
BUILD_FLAGS := -a -ldflags " -X main.revision= $( REVISION) -w -extldflags= $( LDFLAGS) " -tags " $( TAGS) "
BINARY32 := fzf-$( GOOS) _386
BINARY64 := fzf-$( GOOS) _amd64
BINARYARM5 := fzf-$( GOOS) _arm5
BINARYARM6 := fzf-$( GOOS) _arm6
BINARYARM7 := fzf-$( GOOS) _arm7
BINARYARM8 := fzf-$( GOOS) _arm8
VERSION := $( shell awk -F= '/version =/ {print $$2}' src/constants.go | tr -d "\" " )
RELEASE32 := fzf-$( VERSION) -$( GOOS) _386
RELEASE64 := fzf-$( VERSION) -$( GOOS) _amd64
RELEASEARM5 := fzf-$( VERSION) -$( GOOS) _arm5
RELEASEARM6 := fzf-$( VERSION) -$( GOOS) _arm6
RELEASEARM7 := fzf-$( VERSION) -$( GOOS) _arm7
RELEASEARM8 := fzf-$( VERSION) -$( GOOS) _arm8
GLIDE_YAML := glide.yaml
GLIDE_LOCK := glide.lock
SOURCES := $( wildcard *.go src/*.go src/*/*.go) $( SRC_LINK) $( VENDOR_LINK) $( GLIDE_LOCK) $( MAKEFILE)
REVISION := $( shell git log -n 1 --pretty= format:%h -- $( SOURCES) )
BUILD_FLAGS := -a -ldflags " -X main.revision= $( REVISION) -w -extldflags= $( LDFLAGS) " -tags " $( TAGS) "
BINARY32 := fzf-$( GOOS) _386
BINARY64 := fzf-$( GOOS) _amd64
BINARYARM5 := fzf-$( GOOS) _arm5
BINARYARM6 := fzf-$( GOOS) _arm6
BINARYARM7 := fzf-$( GOOS) _arm7
BINARYARM8 := fzf-$( GOOS) _arm8
BINARYPPC64LE := fzf-$( GOOS) _ppc64le
VERSION := $( shell awk -F= '/version =/ {print $$2}' src/constants.go | tr -d "\" " )
RELEASE32 := fzf-$( VERSION) -$( GOOS) _386
RELEASE64 := fzf-$( VERSION) -$( GOOS) _amd64
RELEASEARM5 := fzf-$( VERSION) -$( GOOS) _arm5
RELEASEARM6 := fzf-$( VERSION) -$( GOOS) _arm6
RELEASEARM7 := fzf-$( VERSION) -$( GOOS) _arm7
RELEASEARM8 := fzf-$( VERSION) -$( GOOS) _arm8
RELEASEPPC64LE := fzf-$( VERSION) -$( GOOS) _ppc64le
# https://en.wikipedia.org/wiki/Uname
UNAME_M := $( shell uname -m)
@ -48,6 +50,8 @@ else ifeq ($(UNAME_M),armv7l)
BINARY := $( BINARYARM7)
e l s e i f e q ( $( UNAME_M ) , a r m v 8 l )
BINARY := $( BINARYARM8)
e l s e i f e q ( $( UNAME_M ) , p p c 6 4 l e )
BINARY := $( BINARYPPC64LE)
e l s e
$( error "Build on $ ( UNAME_M ) is not supported , yet .")
e n d i f
@ -63,13 +67,14 @@ release: target/$(BINARY32) target/$(BINARY64)
cd target && cp -f $( BINARY64) fzf.exe && zip $( RELEASE64) .zip fzf.exe
cd target && rm -f fzf.exe
e l s e i f e q ( $( GOOS ) , l i n u x )
release : target /$( BINARY 32) target /$( BINARY 64) target /$( BINARYARM 5) target /$( BINARYARM 6) target /$( BINARYARM 7) target /$( BINARYARM 8)
release : target /$( BINARY 32) target /$( BINARY 64) target /$( BINARYARM 5) target /$( BINARYARM 6) target /$( BINARYARM 7) target /$( BINARYARM 8) target /$( BINARYPPC 64LE )
cd target && cp -f $( BINARY32) fzf && tar -czf $( RELEASE32) .tgz fzf
cd target && cp -f $( BINARY64) fzf && tar -czf $( RELEASE64) .tgz fzf
cd target && cp -f $( BINARYARM5) fzf && tar -czf $( RELEASEARM5) .tgz fzf
cd target && cp -f $( BINARYARM6) fzf && tar -czf $( RELEASEARM6) .tgz fzf
cd target && cp -f $( BINARYARM7) fzf && tar -czf $( RELEASEARM7) .tgz fzf
cd target && cp -f $( BINARYARM8) fzf && tar -czf $( RELEASEARM8) .tgz fzf
cd target && cp -f $( BINARYPPC64LE) fzf && tar -czf $( RELEASEPPC64LE) .tgz fzf
cd target && rm -f fzf
e l s e
release : target /$( BINARY 32) target /$( BINARY 64)
@ -127,6 +132,9 @@ target/$(BINARYARM7): $(SOURCES) vendor
target/$(BINARYARM8) : $( SOURCES ) vendor
GOARCH = arm64 go build $( BUILD_FLAGS) -o $@
target/$(BINARYPPC64LE) : $( SOURCES ) vendor
GOARCH = ppc64le go build $( BUILD_FLAGS) -o $@
bin/fzf : target /$( BINARY ) | bin
cp -f target/$( BINARY) bin/fzf