Skip to content

Instantly share code, notes, and snippets.

@kaizoa
Last active May 22, 2017 12:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kaizoa/a17c733f453d706c742821203391949a to your computer and use it in GitHub Desktop.
Save kaizoa/a17c733f453d706c742821203391949a to your computer and use it in GitHub Desktop.
Makefileで依存パッケージの更新をしてほしいときだけdep ensureさせる ref: http://qiita.com/kai-zoa/items/596f81fef9d8380c06a2
VENDOR_MD5 := $(shell if [[ -f vendor/lock.md5 ]]; then cat vendor/lock.md5; fi)
GOPKG_MD5 :=
ifneq ($(shell type md5 2> /dev/null),)
GOPKG_MD5 := $(shell md5 -q Gopkg.lock)
endif
ifneq ($(shell type md5sum 2> /dev/null),)
GOPKG_MD5 := $(shell md5sum Gopkg.lock | sed -E 's/ .*//g')
endif
.PHONY: build vendor
build: vendor
go build -i -o piyo ./*.go
vendor: dep-install
ifneq ($(VENDOR_MD5),$(GOPKG_MD5))
dep ensure
ifneq ($(shell type md5 2> /dev/null),)
md5 -q Gopkg.lock >| vendor/lock.md5
else ifneq ($(shell type md5sum 2> /dev/null),)
md5sum Gopkg.lock | sed -E 's/ .*//g' >| vendor/lock.md5
else
@echo vendor/lock.md5 was not created 1>&2
endif
else
@echo vendor/ is already up-to-date
endif
dep-install:
ifeq ($(shell type dep 2> /dev/null),)
go get -u github.com/golang/dep/...
endif
dep-ensure: dep-install
dep ensure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment