github.com/nycdavid/zeus@v0.0.0-20201208104106-9ba439429e03/Makefile (about) 1 PACKAGE=github.com/burke/zeus 2 VERSION=$(shell cat VERSION) 3 GEM=rubygem/pkg/zeus-$(VERSION).gem 4 GEMPATH=$(realpath rubygem) 5 VAGRANT_PLUGIN=vagrant/pkg/vagrant-zeus-$(VERSION).gem 6 VAGRANT_WRAPPERS=$(wildcard vagrant/ext/inotify-wrapper/*) 7 BINARIES=zeus-linux-386 zeus-linux-amd64 8 GO_SRC=$(shell find go -name '*.go') 9 GEM_SRC=$(shell find rubygem -name '*.rb') 10 VAGRANT_SRC=$(shell find vagrant -name '*.rb') 11 12 ifeq ($(shell uname -s),Darwin) 13 VAGRANT_WRAPPERS += vagrant/build/fsevents-wrapper 14 BINARIES += zeus-darwin-amd64 15 endif 16 17 CXX=g++ 18 CXXFLAGS=-O3 -g -Wall 19 20 .PHONY: default all clean fmt test test-go test-rubygem install govendor bundler 21 default: all 22 23 all: test fmt man/build $(GEM) $(VAGRANT_PLUGIN) 24 25 fmt: govendor 26 govendor fmt +local 27 28 test: test-go test-rubygem 29 30 test-go: go/zeusversion/zeusversion.go rubygem/lib/zeus/version.rb govendor 31 ZEUS_TEST_GEMPATH="$(GEMPATH)" GO15VENDOREXPERIMENT=1 govendor test +local 32 33 test-rubygem: rubygem/lib/zeus/version.rb rubygem/Gemfile.lock 34 cd rubygem && bin/rspec 35 36 man/build: Gemfile.lock 37 cd man && ../bin/rake 38 39 rubygem/pkg/%: \ 40 rubygem/man \ 41 rubygem/examples \ 42 rubygem/lib/zeus/version.rb \ 43 rubygem/Gemfile.lock \ 44 $(GEM_SRC) \ 45 $(addprefix rubygem/build/,$(BINARIES)) 46 cd rubygem && bundle install && bin/rake 47 48 rubygem/man: man/build 49 mkdir -p $@ 50 cp -R $< $@ 51 52 rubygem/examples: examples 53 rm -rf $@ 54 cp -r $< $@ 55 56 vagrant/pkg/%: vagrant/lib/vagrant-zeus/version.rb $(VAGRANT_WRAPPERS) $(VAGRANT_SRC) vagrant/Gemfile.lock 57 cd vagrant && bundle install && bundle exec rake 58 59 vagrant/build/fsevents-wrapper: vagrant/ext/fsevents/build/Release/fsevents-wrapper 60 mkdir -p $(@D) 61 cp $< $@ 62 63 vagrant/ext/fsevents/build/Release/fsevents-wrapper: vagrant/ext/fsevents/main.m 64 cd vagrant/ext/fsevents && xcodebuild 65 66 rubygem/build/zeus-%: go/zeusversion/zeusversion.go $(GO_SRC) 67 mkdir -p rubygem/build 68 go get github.com/mitchellh/gox 69 GO15VENDOREXPERIMENT=1 gox -osarch="$(subst -,/,$*)" \ 70 -output="rubygem/build/zeus-{{.OS}}-{{.Arch}}" \ 71 $(PACKAGE)/go/cmd/zeus 72 73 go/zeusversion/zeusversion.go: VERSION 74 mkdir -p $(@D) 75 @echo 'package zeusversion\n\nconst VERSION string = "$(VERSION)$(GO_VERSION_SUFFIX)"' > $@ 76 rubygem/lib/zeus/version.rb: VERSION 77 mkdir -p $(@D) 78 @echo 'module Zeus\n VERSION = "$(VERSION)"\nend' > $@ 79 vagrant/lib/vagrant-zeus/version.rb: VERSION 80 mkdir -p $(@D) 81 @echo 'module VagrantPlugins\n module Zeus\n VERSION = "$(VERSION)"\n end\nend' > $@ 82 83 84 install: $(GEM) 85 gem install $< --no-ri --no-rdoc 86 87 %/Gemfile.lock: $*Gemfile bundler 88 cd $* && bundle check || bundle install 89 90 Gemfile.lock: Gemfile bundler 91 bundle check || bundle install 92 93 clean: 94 rm -rf vagrant/ext/fsevents/build man/build go/zeusversion 95 rm -rf rubygem/{man,build,pkg,examples,lib/zeus/version.rb,MANIFEST} 96 rm -rf vagrant/{build,pkg,lib/vagrant-zeus/version.rb,MANIFEST} 97 98 govendor: 99 go get github.com/kardianos/govendor 100 101 bundler: 102 bundle -v || gem install bundler --no-rdoc --no-ri